On 13.04.2014 19:27, Martin Frb wrote:
On 13/04/2014 16:54, Sergei Gorelkin wrote:
Since the new exception handling is compilant with "official way to do
it", I'd expect the debugger to be notified about exception by Windows
directly. But I have no idea about how gdb is compatible with that.
Maybe it must be configured in certain way.
Anyway, the exception information including its original address is
still available when control is passed to __FPC_except_handler. This
handler is called twice, first time it initiates unwinding and the
second time restores the stack and jumps to code of "except" block.
Ok, thanks for the info.
Will see what I can find.
On Windows a debugger will use the debugging API which (most
importantly) involves WaitForDebugEvent() (see
http://msdn.microsoft.com/en-us/library/windows/desktop/ms681423%28v=vs.85%29.aspx
) of which the returned DEBUG_EVENT structure (see
http://msdn.microsoft.com/en-us/library/windows/desktop/ms679308%28v=vs.85%29.aspx
) contains among others information of the exception. The debugger is
informed of such an exception twice: once before the exception handler
is called and once afterwards if no handler decided to handle the
exception (called first change and second/last change exception
handling). GDB should handle this already as it is able to present
SIGSEGVs etc. which rely on the information provided by Windows...
Regards,
Sven
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel