【发布时间】:2011-05-18 09:50:54
【问题描述】:
我正在使用 gdb 命令“attach”来调试进程 但是在进程崩溃(sigkill)之后我看不到堆栈跟踪(gdb中的“bt”命令): (gdb) BT 没有堆栈。
进程被杀死后如何查看堆栈跟踪?
【问题讨论】:
我正在使用 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 来执行此操作。
【讨论】: