我想避免在应用程序获得SIGSEGV
之后忘记生成核心转储文件的情况,您离开gdb并丢失了有关该崩溃的信息。
我正在寻找的是类似于commands
(用于断点),所以我可以编写一组命令来编写,以便在我的应用收到信号时执行。
在每个命令执行后也可以执行某些操作,就像display
一样。这里的要点是我找不到如何检查是否生成了X信号。
首先,我更喜欢在gdb中配置它。通过这种方式,我的意思是不必改变app / gdb的推出方式。
提前致谢。
答案 0 :(得分:1)
如果你的gdb支持catch signal
命令,你可以像断点一样编写脚本。
$ gdb ab
(gdb) list
1 main()
2 {
3 abort();
4 }
(gdb) catch signal SIGABRT
Catchpoint 1 (signal SIGABRT)
(gdb) commands
Type commands for breakpoint(s) 1, one per line.
>generate-core-file
>end
(gdb) run
Catchpoint 1 (signal SIGABRT), 0x00007ffff7a4692f in raise ()
from /lib64/libc.so.6
Saved corefile core.2097