【问题标题】:how can i see the stack trace after the process is killed?进程被杀死后如何查看堆栈跟踪?
【发布时间】:2011-05-18 09:50:54
【问题描述】:

我正在使用 gdb 命令“attach”来调试进程 但是在进程崩溃(sigkill)之后我看不到堆栈跟踪(gdb中的“bt”命令): (gdb) BT 没有堆栈。

进程被杀死后如何查看堆栈跟踪?

【问题讨论】:

    标签: c linux gdb


    【解决方案1】:

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

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

    此外,您还需要在打开调试信息的情况下编译可执行文件。如果您使用的是gcc,那么我建议您使用-ggdb3 来执行此操作。

    【讨论】:

    • 你甚至可以修改 File: /etc/sysctl.conf : variable: kernel.core_pattern = /tmp/core(Core File Path) 来设置核心文件PATH
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 2018-03-02
    相关资源
    最近更新 更多