【发布时间】:2010-09-06 10:40:13
【问题描述】:
我有一个程序由于分段错误而崩溃。核心文件生成。
在 gdb 中运行核心会给我以下信息:
适用于 HP Itanium(32 或 64 位)的 HP gdb 6.1 和目标 HP-UX 11iv2 和 11iv3。
核心由`gcpf1fwcApp'生成。
程序以信号 6 终止,已中止。
我使用了命令
线程应用所有bt
当我检查堆栈跟踪时,我在处于等待状态的主线程中遇到错误。
但是,当我在 GDB 中运行相同的程序时,堆栈跟踪中会出现完全不同的错误。这似乎比核心转储更正确。
程序有 31 个线程。
为什么我会有这种差异?
【问题讨论】:
-
你的程序是多线程的吗?请提供您在 GDB 中使用过的命令。与您比较 GDB 输出的确切位置是什么?您在生产核心的同一台机器上在哪里分析核心?
-
是的,程序是多线程的。它有 31 个线程。我正在将核心文件产生的回溯与在 gdb 中运行程序产生的回溯进行比较。我使用的唯一命令是“线程应用所有 bt”。我像这样使用 gdb:gdb -c
。是的,它在同一台机器上。
标签: c++ gdb crash-dumps hp-ux