Whenever I run winedbg (or when wine runs it in response to an exception),
it fails to find debug symbols. Looking at disassembled code is making my
brain numb. I "export STRIP=false" before configure to ensure that the
Makefile doesn't strip anything, and gdb finds everything just fine. So what
am I doing wrong? The doc says winedbg should know all about this,
and I see examples of people's winedbg runs on the internet where
winedbg is automagically loading tons of symbols for them (I only
seem to get libntdll.dll.so working). Here's a typical run:
wine: Unhandled exception, starting debugger...
WineDbg starting on pid 8078e48
No debug information in ELF 'wine' (0x00000000)
Breakpoint 1 at 0x4000b0a0
Loaded debug information from ELF '/usr/local/lib/libntdll.dll.so' (0x4002e000)
No debug information in ELF '/usr/local/lib/libwine.so' (0x40161000)
No debug information in ELF '/usr/local/lib/libwine_unicode.so' (0x4017a000)
No debug information in ELF '/lib/libm.so.6' (0x40244000)
No debug information in ELF '/lib/libc.so.6' (0x40268000)
No debug information in ELF '/lib/libdl.so.2' (0x403a3000)
No debug information in ELF '/lib/ld-linux.so.2' (0x40000000)
No debug information in ELF '/usr/local/lib/wine/kernel32.dll.so' (0x406e3000)
No debug information in ELF '/usr/local/lib/wine/user32.dll.so' (0x407a1000)
No debug information in ELF '/usr/local/lib/wine/gdi32.dll.so' (0x40909000)
.
.
.
Wine-dbg>step
Single stepping until exit from function,
which has no line number information.
First chance exception: c0000025 in 32-bit code (0x4010b7ee).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:008f GS:0000
EIP:4010b7ee ESP:406caa70 EBP:406cab10 EFLAGS:00000246( - 00 I Z- -P1 )
EAX:406caaac EBX:40148e70 ECX:406ca754 EDX:00000000
ESI:406d0ca4 EDI:406cab1c
Stack dump:
0x406caa70 (NTDLL.DLL.memcpy+0x3e1060): 406d0c9c 406cab20 406cab00 71188dc9
0x406caa80 (NTDLL.DLL.memcpy+0x3e1070): 4010b0f4 403b0814 00000000 406caa9c
0x406caa90 (NTDLL.DLL.memcpy+0x3e1080): 400c0f27 402786da 40273548 4026b208
0x406caaa0 (NTDLL.DLL.memcpy+0x3e1090): 401793e0 00000002 00000000 c0000025
0x406caab0 (NTDLL.DLL.memcpy+0x3e10a0): 00000001 406cae7c 40007f5e 00000000
0x406caac0 (NTDLL.DLL.memcpy+0x3e10b0): 40309451 016cab74 00000000 406cab20
0x406caad0 (NTDLL.DLL.memcpy+0x3e10c0):
0011: sel=008f base=4015f140 limit=00000fff 32-bit rw-
Backtrace:
=>0 0x4010b7ee (EXC_RtlRaiseException+0x28a in libntdll.dll.so) (ebp=406cab10)
1 0x40121c29 (NTDLL.DLL.__wine_call_from_32_regs+0xb5 in libntdll.dll.so) (ebp=406cae6c)
2 0x4010b55d (NTDLL.DLL.RtlRaiseException+0x5 in libntdll.dll.so) (ebp=406caed0)
3 0x499cd236 (URLMON.DLL.CopyBindInfo in urlmon.dll.so) (ebp=406caee0)
4 0x71119951 (BROWSEUI.DLL.EntryPoint+0x955 in C:\WINDOWS\SYSTEM\BROWSEUI.DLL) (ebp=406caf04)
5 0x711198fd (BROWSEUI.DLL.EntryPoint+0x901 in C:\WINDOWS\SYSTEM\BROWSEUI.DLL) (ebp=406cbf74)
6 0x7111988d (BROWSEUI.DLL.EntryPoint+0x891 in C:\WINDOWS\SYSTEM\BROWSEUI.DLL) (ebp=406ccfcc)
7 0x7112ac78 (BROWSEUI.DLL.DllGetClassObject+0x2471 in C:\WINDOWS\SYSTEM\BROWSEUI.DLL) (ebp=406ccfec)
.
. ( several winedbg commands snipped here )
.
0x499cd051 (URLMON.DLL..data+0xb051 in urlmon.dll.so): subl $4,%esp
Wine-dbg>symbolfile /usr/local/lib/wine/urlmon.dll.so
Reading symbols from file /usr/local/lib/wine/urlmon.dll.so
Wine-dbg>list
Enter path to file '':
Wine-dbg>step
Single stepping until exit from function,
which has no line number information.
.
.
.
Whatever I do, even if winedbg makes a show of loading my symbols, it never seems to synch up with
my source files, except maybe for libntdll.dll.so... anyone got ideas? Thanks,
-gmt
--
"Waiting periods are only a step. Registration is only a step.
The prohibition of private firearms is the goal."
-U.S. Attorney General Janet Reno, December 1993