More debugger quesions
Robert Lunnon
bobl at optushome.com.au
Thu Jul 14 08:17:46 CDT 2005
Well we are getting somewhere
When my test application segfaults the debugger attaches and runs through a
number of debug events eventually ariving at a segfault
strace:winedbg:dbg_handle_debug_event 00000008:00000009: loads DLL c:
\windows\system\imm32.dll @7f440000 (0<0>)
trace:winedbg:dbg_handle_debug_event 00000008:00000009: exception
code=80000003
Now I added some instrumentation and find the following happens IE
trace:winedbg:dbg_handle_debug_event Continue on first exception is true
trace:winedbg:dbg_handle_debug_event Breaking switch
trace:winedbg:dbg_handle_debug_event Call ContinueDebugEvent
trace:winedbg:dbg_handle_debug_event Continuing executio
trace:winedbg:dbg_main_loop Wait for next debug event...
In this code at the top of dbg_main_loop
if (dbg_curr_process)
dbg_printf("WineDbg starting on pid 0x%lx\n", dbg_curr_pid);
/* wait for first exception */
while (WaitForDebugEvent(&de, INFINITE))
{
WINE_TRACE("Calling handle_debug_event 2\n");
if (dbg_handle_debug_event(&de)) {WINE_TRACE("Event
handled\n");break;}
WINE_TRACE("Wait for next debug event...\n");
}
Problem is that the client program is stopped, probably on a segfault trace
because I enable tracing (stops) on all machine faults and signals when I
attached it (this allows my replacement for wait4 to find out if a fault or
signal happened in the debuggee). Everything deadlocks then since the
debugger never continues the program after the exception (Or perhaps the
wineserver never gets a message to restart it)
Perhaps I don't understand the semantics of PTRACE wait4 interactions. Should
I just let the app trap machine faults ?
All help appreciated
Bob
More information about the wine-devel
mailing list