我正在使用gdb命令“attach”来调试一个过程 但是在进程崩溃(sigkill)后我看不到堆栈跟踪(gdb中的“bt”命令): (gdb)bt 没有堆栈。
如何在进程被杀死后看到堆栈跟踪?
答案 0 :(得分:6)
将shell设置为dump core,确保ulimit -c
未显示核心大小为0.如果确实为0,则运行ulimit -c unlimited
。接下来,重新运行程序,直到它崩溃并转储核心,然后调用:
gdb /path/to/executable /path/to/core
并输入bt
以获取堆栈跟踪。
此外,您还需要在打开调试信息的情况下编译可执行文件。如果您使用的是gcc
,我建议您使用-ggdb3
来执行此操作。