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

Reply via email to