当从崩溃中报告一个bug时,这个bug就变成了私有的,并且成为一个名为CoreDump.gz的文件。Bug分类文档说明如下:
如果崩溃仍然有一个CoreDump.gz附件,那么就不可能自动获得一个完全符号的堆栈跟踪并检查副本。
Stacktrace.txt在人类看来是可读的。如何理解堆栈跟踪的含义。使用CoreDump的CoreDump.gz似乎没有人类的可读性。什么是“完全符号堆栈跟踪”?“完全符号堆栈跟踪”之间的区别是什么?如何查看CoreDump文件的内容?(试过“猫”,但不干净)
发布于 2011-09-30 19:27:59
Coredump.gz是崩溃程序可以访问的(压缩)内存。它是一个二进制文件。堆积如山是一个宝库,有各种各样的私人数据需要挖掘。
代码转储可以通过运行‘gdb’来查看:
gdb --core=mycoredump当然,您仍然需要与此核心相关联的调试包。
然后,您可以通过以下方法生成堆栈跟踪:
(gdb) bt若要生成当前线程的堆栈跟踪(没有参数解析),或
(gdb) thread apply all bt full若要生成核心节点中所有线程的堆栈跟踪,请使用参数解析。
堆栈跟踪和完整堆栈跟踪显示程序中的控制流。对于Python,堆栈跟踪的顶部显示了最古老的调用,最近的调用位于底部;对于其他几乎所有的调用,顶部是最近的调用,底部是最老的调用。
完整的堆栈跟踪不仅会显示流,还会显示参数的值。这就是我们通常发现私有数据的地方--例如,假设您看到一个名为"validatePassword“的函数,其参数为"Password",值为”MySecretPassword“.
只有在安装了调试包时,堆栈跟踪才会有帮助(这样堆栈帧就可以解析成我们可以轻松读取的东西)。对堆栈跟踪的分析需要有用于构建此特定程序实例的源。
https://askubuntu.com/questions/63796
复制相似问题