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