【问题标题】:Saving core file in gdb在 gdb 中保存核心文件
【发布时间】:2010-09-24 17:32:11
【问题描述】:

是否可以使用 gdb 保存/转储核心文件?有时我想保存文件以便以后分析。

【问题讨论】:

    标签: gdb core-file


    【解决方案1】:

    在 gdb 中发出“生成核心文件”命令。

    (gdb) help generate-core-file
    Save a core file with the current state of the debugged process.
    Argument is optional filename.  Default filename is 'core.<process_id>'.
    (gdb) break main
    Breakpoint 1 at 0x400e0b: file utils/udec.c, line 36.
    (gdb) r
    Starting program: /home/nos/build/utils/udec
    
    Breakpoint 1, main (argc=1, argv=0x7fffffffe9a8) at utils/udec.c:36
    36              int fileargc = 1;
    (gdb) generate-core-file
    Saved corefile core.7336
    

    【讨论】:

    • 会保存在GDB的当前工作目录下,可以通过pwd命令查看。如果您需要更改它,可以使用 cd 进行更改,就像在 shell 中一样。
    • @Jonathon_Reinhart 将核心文件路径作为generate-core-file 第一个参数传递,如果您想将其保存在某个位置
    【解决方案2】:

    您也可以使用gcore &lt;pid&gt; 来生成内核。

    【讨论】:

    • 这应该在评论部分
    • 请查看此页面stackoverflow.com/help/privileges/comment:我什么时候不应该发表评论?....“回答问题或为现有答案提供替代解决方案;”
    • 看起来 gcore 仅在较新的 gdb 版本中受支持。旧的需要generate-core-file
    • 这似乎是generate-core-file 的简称,两者都做同样的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 2013-11-27
    • 2012-01-09
    • 1970-01-01
    相关资源
    最近更新 更多