代码之家  ›  专栏  ›  技术社区  ›  doron

Linux上的崩溃分析

  •  7
  • doron  · 技术社区  · 14 年前

    在Linux上分析崩溃的最佳方法是什么?

    我们期望构建软件并向测试人员交付一个发布版本。测试人员可能不记得如何再现碰撞,或者碰撞完全是间歇性的。他们的机器上也没有开发环境。该软件是用C/C++编写的,并编译成本地机器代码进行分发。

    5 回复  |  直到 13 年前
        1
  •  6
  •   Community Egal    7 年前
        2
  •  7
  •   karlphillip    14 年前

    如果磁盘上有空间,让应用程序在崩溃时创建其coredump。

    ulimit -c unlimited
    

    稍后您可以使用gdb调试它。

        3
  •  3
  •   Nikolai Fetissov    14 年前

    除了前面提到的核心转储和堆栈跟踪之外-确保您可以轻松地识别正在运行的可执行文件的版本,并能够回答每个源文件的哪个版本进入哪个二进制版本(即,花一些时间使用源代码控制系统和构建脚本)。否则,核心文件和堆栈跟踪都不会有帮助。

        4
  •  3
  •   nategoose    13 年前

    核心转储是有用的,但是它们并不总是告诉你你想知道的关于你如何在错误情况下结束的一切。

    记录操作、输入和事件可能非常有用。如果您能够以这样一种方式记录程序的每次运行,即在发生崩溃时,开发人员可以访问日志并重新生成错误,那么这将非常有帮助。

    如果可能的话,您应该使用生成的最大调试符号来构建程序,如果您不希望或不能让您的发布版本拥有这些符号,那么应该删除它们,但是保留每个发布版本的一个副本,其中包含调试符号,如果需要调试崩溃,可以将其与核心文件结合使用。