source level debugging with WineLib?

Geoff K. Hart ghart at ghart.homeip.net
Tue Nov 2 15:57:59 CST 2004


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





More information about the wine-devel mailing list