ARMv5应用程序有时会崩溃 - objdump + gdb问题

时间:2014-09-02 10:58:51

标签: multithreading gdb qt4 arm objdump

我有手臂上的程序,有时会崩溃。

我经常学习,但我不知道该怎么做。

程序崩溃时会生成coredump文件。如果我用二进制运行coredump,backtrace写道:

Core was generated by `./myprog -s -d 731'.
Program terminated with signal 11, Segmentation fault.
#0  0x410987e8 in ?? () from /lib/libc.so.6
(gdb) bt
#0  0x410987e8 in ?? () from /lib/libc.so.6
#1  0x41098758 in ?? () from /lib/libc.so.6
#2  0x41098758 in ?? () from /lib/libc.so.6
#3  0x41098758 in ?? () from /lib/libc.so.6
#4  0x41098758 in ?? () from /lib/libc.so.6
and so on same lines......

当我修改这个程序并再次编译/运行时,他崩溃了另一个lib(libQtGuiE.so)并且堆栈已满了libQtGuiE.so 一段时间gdb写" Backtrace停止了:前一帧内部到这个帧(腐败堆栈?)"

奇怪的是我在这个程序中使用了4个线程,而gdb写了这个:

(gdb) info threads 
  4 Thread 820  0x00000000 in ?? ()
  3 Thread 838  0x00000000 in ?? ()
  2 Thread 835  0x00000000 in ?? ()
* 1 Thread 836  0x410987e8 in ?? () from /lib/libc.so.6

所以我认为这意味着重写了线程堆栈?我使用Qt4 - 所以线程是由qthread创建的。

程序不会崩溃很多 - >每天一次。

你能告诉我该怎么做吗?

0 个答案:

没有答案