如何在进程死亡后看到堆栈跟踪?

我正在使用gdb命令“附加”来debugging一个过程,但进程崩溃后(sigkill)我看不到堆栈跟踪(gdb中的“bt”命令):(gdb)bt没有堆栈。

如何在进程死亡后看到堆栈跟踪?

通过确保ulimit -c不显示核心大小为0来设置你的shell转储核心。如果它确实说了0,那么运行ulimit -c unlimited 。 接下来,重新运行你的程序,直到崩溃并转储核心然后调用:

gdb /path/to/executable /path/to/core并键入bt来获取堆栈跟踪。

此外,您将要打开调试信息编译您的可执行文件。 如果你使用gcc那么我会建议你使用-ggdb3来做到这一点。