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