kom*_*tes 13 bug-reporting apport
在报告崩溃中的错误时,该错误会被设为私有并保存为一个名为 CoreDump.gz 的文件。错误分类文档说明如下:
如果崩溃仍然有 CoreDump.gz 附件,则无法自动获取完全符号化的堆栈跟踪并检查重复项。
Stacktrace.txt 似乎是人类可读的。我如何理解堆栈跟踪的含义。CoreDump 和 CoreDump.gz 似乎不是人类可读的。什么是“完全符号堆栈跟踪”?“完全符号堆栈跟踪”之间有什么区别 如何查看 CoreDump 文件的内容?(试过'猫',但它不干净)
hgg*_*gdh 15
Coredump.gz 是崩溃的程序可访问的(压缩)内存。它是一个二进制文件。Coredump 是一个宝库,可以挖掘各种私人数据。
可以通过运行“gdb”来查看核心转储:
gdb --core=mycoredump
Run Code Online (Sandbox Code Playgroud)
当然,您仍然需要与该内核关联的调试包。
然后,您可以通过以下方式生成堆栈跟踪:
(gdb) bt
Run Code Online (Sandbox Code Playgroud)
生成当前线程的堆栈跟踪——没有参数解析——,或者
(gdb) thread apply all bt full
Run Code Online (Sandbox Code Playgroud)
使用参数解析生成核心转储中所有线程的堆栈跟踪。
堆栈跟踪和完整堆栈跟踪显示程序内的控制流。对于 Python,堆栈跟踪的顶部显示最旧的调用,最近的在底部;对于几乎所有其他事情,顶部是最近的调用,底部是最旧的调用。
完整的堆栈跟踪不仅会显示流程,还会显示参数的值。这是我们通常可以找到私有数据的地方——例如,假设您看到一个名为“validatePassword”的函数,其参数名为“Password”,值为“MySecretPassword”……
堆栈跟踪通常只有在安装了调试包时才有用(以便堆栈帧可以解析为我们可以轻松阅读的内容)。对堆栈跟踪的分析将需要具有用于构建此特定程序实例的源。