Возможно, вы захотите взглянуть на сигнал SIGABRT POSIX
Например,
, если вы нажмете на abort()
вызов во время отладки с помощью GDB, вы увидите:
Program received signal SIGABRT, Aborted.
0x0000003c47e352d5 in raise () from /lib64/libc.so.6
(gdb) where
#0 0x0000003c47e352d5 in raise () from /lib64/libc.so.6
#1 0x0000003c47e36beb in abort () from /lib64/libc.so.6
#2 0x0000000000400721 in main (argc=1, argv=0x7fffffffde18) at test.c:27
Как упомянул @kbok, разборка функции abort
включает инструкцию hlt
:
(gdb) disassemble abort
Dump of assembler code for function abort:
...
0x0000003c47e36b08 <+152>: hlt
...
(но это так SEGFAULT indeed
)
(gdb) break *0x0000003c47e36b08
Breakpoint 2 at 0x3c47e36b08
(gdb) jump *0x0000003c47e36b08
Breakpoint 2, 0x0000003c47e36b08 in abort () from /lib64/libc.so.6
(gdb) next
Single stepping until exit from function abort,which has no line number information.
Program received signal SIGSEGV, Segmentation fault.
0x0000003c47e36b08 in abort () from /lib64/libc.so.6