Hello,
We just started using WineLib, and have very basic question:
which -g??? option do you use to do source level debugging
with winedbg?
I searched the documentation and mailing list for any step-by-step
about this, but found nothing. So either the answer is so obvious
that I just can't see it - or it doesn't work?
By default, winemaker seems configure things for no debug - so I
edited one Makefile manually, and added -g. Winedbg can attach
to the process, and can even show the stack - but didn't know
much beyond that. I tried all the -g variants that I could find,
but only -gstabs and -gstabs+ seemed to help. They allowed the
debugger to find the correct place in the source, and "whatis"
seemed to work - however, if I tried to dereference something,
it complained about "no type ...", like this:
Wine-dbg>info process
pid threads parent executable (all id:s are in hex)
00000008 3 00000000 'Z:\home\s\src\SysSrv
\DataDistributionService\DDSServer2\ddsserver2.exe'
Wine-dbg>attach 8
In 32 bit mode.
0x546387a2: ret
Wine-dbg>bt
Backtrace:
=>1 0x546387a2 (0x10252c50)
2 0x48714a7e NTDLL_wait_for_multiple_objects+0x12e in ntdll
(0x10252cf8)
3 0x48712fec vm86_return_end+0xc55 in ntdll (0x10252d1c)
4 0x1000b808 (0x10352d64)
5 0x48714a7e NTDLL_wait_for_multiple_objects+0x12e in ntdll
(0x10352e0c)
6 0x48714afc NtWaitForMultipleObjects+0x6c in ntdll (0x10352e30)
7 0x61e57a95 WaitForMultipleObjectsEx+0xb5 in kernel32 (0x10352f60)
8 0x61e5797b WaitForSingleObjectEx+0x3b in kernel32 (0x10352f80)
9 0x1002878afixme:dbghelp:elf_new_wine_thunks Duplicate in
ddsserver2<elf>:
_ZZ17BroadCastIdentityPvmmE22lRepCntrClientDeletion<10037720-00000004>
lRepCntrClientDeletion<10037720-00000000>
fixme:dbghelp:elf_new_wine_thunks Duplicate in ddsserver2<elf>:
_ZZ17BroadCastIdentityPvmmE20lRepKeepAliveCounter<10037724-00000004>
lRepKeepAliveCounter<10037724-00000000>
fixme:dbghelp:elf_new_wine_thunks Duplicate in ddsserver2<elf>:
_ZZ17BroadCastIdentityPvmmE17lRepCntrBroadcast<1003771c-00000004>
lRepCntrBroadcast<1003771c-00000000>
_Z13DDSServerMainPv+0x88(lpParameter=0x44c47098) [/home/s/src/SysSrv/
DataDistributionService/DDSServer2/AcceptSocket.cpp:220] in ddsserver2
(0x10353150)
10 0x61e5eeda (0x10353228)
11 0x48716523 (0x10353a78)
12 0x1000508d (0x10353b0c)
13 0x660d255a (0x00000000)
Wine-dbg>up 8
220 dwRetVal = ::WaitForSingleObjectEx
(pServer->m_hStopEvent, INFINITE, TRUE);
Wine-dbg>p pServer
0x44c47098
Wine-dbg>p *pServer
No type or type mismatch
Wine-dbg>whatis pServer
struct DDSServer*
Wine-dbg>
Any help?
Geoff