debugging/gdb/example_division_by_zero
GDB (The GNU Project Debugger)
Example: GDB - Division by zero
Source code
division_by_zero.c++
:#include <iostream> int main(int argc, char *argv[]) { int a=1, b=0; std::cout << a/b << std::endl; }
Set up compiler environment
module add compiler/gnu
Compile (add debug symbols)
c++ -g -Wall division_by_zero.c++ -o division_by_zero
Execute
./division_by_zero
Floating point exception (core dumped)
Execute with GDB
gdb division_by_zero
(gdb) run
Program received signal SIGFPE, Arithmetic exception. 0x00000000004007a3 in main (argc=1, argv=0x7fffffffb298) at division_by_zero.c++:5 5 std::cout << a/b << std::endl;
(gdb) bt
#0 0x00000000004007a3 in main (argc=1, argv=0x7fffffffb298) at division_by_zero.c++:5
(gdb) print a
$1 = 1
(gdb) print b
$2 = 0
(gdb) info locals
a = 1 b = 0
GDB non-interactive execution (e.g. in batch job)
gdb -ex run -ex bt -batch --args ./division_by_zero
Program received signal SIGFPE, Arithmetic exception. 0x00000000004007a3 in main (argc=1, argv=0x7fffffffb298) at division_by_zero.c++:5 5 std::cout << a/b << std::endl; #0 0x00000000004007a3 in main (argc=1, argv=0x7fffffffb298) at division_by_zero.c++:5