I tried to set a breakpoint in agent when I investigated that crash. Since the address was not available at start I fired up Agent and then used <CTRL>-C in winedbg afterwards. The problem I had with this is, that this doesn't seem to be transparent to the application. Most of the time Agent crashed with unhandled exception when I continued. I thought that pressing CTRL-C shouldn't be noticable for the debugee. Of course there could be code that could make problems like timer or such, but I don't know if this is the case here. I tried this several times and only two times it worked as expected. All the other times Agent crashed.
Gerhard W. Gruber wrote:
I tried to set a breakpoint in agent when I investigated that crash. Since the address was not available at start I fired up Agent and then used <CTRL>-C in winedbg afterwards. The problem I had with this is, that this doesn't seem to be transparent to the application. Most of the time Agent crashed with unhandled exception when I continued. I thought that pressing CTRL-C shouldn't be noticable for the debugee. Of course there could be code that could make problems like timer or such, but I don't know if this is the case here. I tried this several times and only two times it worked as expected. All the other times Agent crashed.
does this help ? A+
Index: dlls/ntdll/signal_i386.c =================================================================== RCS file: /home/cvs/cvsroot/wine/wine/dlls/ntdll/signal_i386.c,v retrieving revision 1.61 diff -u -r1.61 signal_i386.c --- dlls/ntdll/signal_i386.c 14 May 2003 19:41:17 -0000 1.61 +++ dlls/ntdll/signal_i386.c 24 May 2003 09:48:01 -0000 @@ -842,6 +842,8 @@ { context->ContextFlags = CONTEXT_DEBUG_REGISTERS; NtGetContextThread(GetCurrentThread(), context); + if (!(context->Dr6 & 0xf)) + rec.ExceptionCode = EXCEPTION_BREAKPOINT; } break; case T_BPTFLT: /* Breakpoint exception */