[fpc-devel] hot to handle SIGFPE, SIGSEGV using gdb as debugger

Paul Ishenin webpirat at mail.ru
Wed Mar 25 14:01:31 CET 2009


Hello, FPC developers' list

I attached a simple program which handles division by zero (EDivByZero) 
exception and writes to the console when this happen.
Run without debugger gives next output:
Exception is handled
1

When I run it with gdb I cannot continue usual execution after SIGFPE 
happen.

(gdb) run
Starting program: 
C:\programming\mytest\debugger_exceptions/test_exception.exe
[New thread 6100.0x13e4]

Program received signal SIGFPE, Arithmetic exception.
0x00401502 in EXCEPTION1 () at test_exception.lpr:15
15          a := a div (a - 1); // EDivByZero
(gdb) continue
Continuing.

Program received signal SIGFPE, Arithmetic exception.
0x00401502 in EXCEPTION1 () at test_exception.lpr:15
15          a := a div (a - 1); // EDivByZero
(gdb) continue
Continuing.

Program exited with code 030000000224.

Ok, tried "info signals" and found that gdb handles SIGFPE. I changed 
behavior:

(gdb) handle SIGFPE noprint
Signal        Stop      Print   Pass to program Description
SIGFPE        No        No      Yes             Arithmetic exception
(gdb) handle SIGFPE nostop
Signal        Stop      Print   Pass to program Description
SIGFPE        No        No      Yes             Arithmetic exception
(gdb) run
Starting program: 
C:\programming\mytest\debugger_exceptions/test_exception.exe
[New thread 5912.0xa3c]

Program exited with code 030000000224.

No luck :(

The same thing with SIGSEGV (look at Exception2 procedure).

Best regards,
Paul Ishenin.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: test_exception.lpr
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20090325/3e604e34/attachment.ksh>


More information about the fpc-devel mailing list