【问题标题】:finding crash from coredump on linux从 Linux 上的 coredump 中查找崩溃
【发布时间】:2015-05-11 08:54:58
【问题描述】:

我找到了一个有用的主题,用于查找导致 Window 上的 coredump 文件崩溃的代码行 (http://www.codeproject.com/Articles/3472/Finding-crash-information-using-the-MAP-file)。但我找不到 Linux 的类似主题。有时我在测试系统上有 coredump,但由于缺少调试信息而无法分析它们。我无法复制此崩溃,因此无法调试它们。 Gdb stacktrace 显示堆栈如下:

#0  0x00a2b430 in __kernel_vsyscall ()
#1  0x01522b11 in raise () from /lib/libc.so.6
#2  0x015243ea in abort () from /lib/libc.so.6
#3  0x08126e9f in ?? ()
#4  0x081276a8 in ?? ()
#5 0x0808b6fb in main ()

因此,我希望在 Linux 上从 coredump 中查找崩溃信息的主题与上述 Window 主题类似。您能帮忙提出任何解决方案或相关主题吗?

【问题讨论】:

    标签: c++ c linux crash


    【解决方案1】:

    通常可以使用与“旧”编译器完全相同的一组 C 编译器标志重新编译程序,只需添加 -g 以添加调试信息,然后将该可执行文件与生成的核心转储一起加载到调试器中。

    但是,重要的是不要更改源代码中的任何内容或更改任何编译器标志,因为这会导致生成与核心转储不匹配的不同代码。唯一可以更改的标志是 -g,它添加了调试信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多