Debugging remotely from Visual studio

David Hemmo david.wine at pilsoft.com
Fri May 6 09:26:36 CDT 2005


Eric Pouech wrote:

> 
> - kernel send a trap signal
> - wine's ntdll catches it, and queue the information as a debug event in 
> the wineserver
> - the debugger (msvcmon in your case) get notified of the trap while 
> waiting for a debug event
> 

I understand.

I made a log of what happens when I single step with the debugger:

I see the debugger waking up
001b: *wakeup* signaled=258 cookie=0x2f9ce4
then, a little further it get the exception status
001b: get_exception_status() = 0 
{status=65538,context={flags=00010007,...,eflags=00210346,...}}
and then the same thread has a lot of lines in the log with the same message
001b: *signal* signal=5
until the message
001b:warn:seh:setup_exception exception outside of stack limits in 
thread 001b eip 002b448d esp 019b12ec stack 0x19b0000-0x1ab0000

It clearly looks like a recursive call, or an infinite loop.

Any idea of what can trigger such a behaviour ?

Another question that could be related is the status of the trace flag 
in EFlags (0x100). It looks like wine clears it in some of its code 
(raise_trap_exception and the handler for SIGTRAP in signal_i386.c). 
Shouldn't it be the debugger responsibilty ?

Thanks

David Hemmo

PS: I hope I am clear enough. Don't hesitate to contact me if anything 
is missing, or not clear.




More information about the wine-devel mailing list