[fpc-devel] -dTEST_WIN32_SEH

Martin Frb lazarus at mfriebe.de
Sun Apr 13 16:20:37 CEST 2014


Just been looking at this, and trying to thing of how to catch in the 
debugger.

 From a very brief look at the sources (please correct me, if I got it 
wrong, or missed anything)

An error handler is installed to the OS, the handler is
function syswin32_i386_exception_handler(excep : PExceptionPointers) : 
Longint;stdcall;

This handler returns instructions (ignore, or alternative instruction 
pointer) to the OS ?
If this exception is handled it goes to JumpToHandleErrorFrame ?

Then in there the "longjmp" is triggered, and presumingly goes to the 
"except" block ?

If so, how can the debugger get notified (before the longjmp), in a way, 
that it can get the address where the problem occurred?

with raise exception the debugger can set a breakpoint, because raise 
exception is defined [public alias ...] so the debugger can read the 
address by knowing the name.
But the new code does not have that....



More information about the fpc-devel mailing list