【发布时间】:2016-01-18 19:34:50
【问题描述】:
我的应用程序(多线程)发生随机崩溃,我正在尝试调试它。 但是,当我使用“bt”命令时,我得到以下输出(而不是跟踪):
#0 0x9f665582 in ?? ()
我不知道是什么原因造成的。因此,为了查看细节,我尝试打印当前的 $ip(指令指针):
x /i $eip
0x9f665582: mov (%esi),%edi
现在,当我尝试检查“%esi”和“%edi”的内存内容(上下 512 个字节)时,在所有情况下都会得到以下结果:
<Address 0xblabla out of bounds>
看起来目标/源地址已损坏,对吧?
另外,当我运行“list”命令时,我得到了父线程的源代码,它什么都不做,只是在一个循环中运行,没有任何工作。我怀疑父线程导致了这次崩溃。但是,可能是某个线程正在破坏父线程的堆栈帧。但是我怎么能找到哪个数据结构/线程在做呢? 或者,如果您想到任何其他原因,我将不胜感激。
【问题讨论】:
标签: debugging segmentation-fault gdb