Приложение ARMv5 иногда дает сбой - проблема objdump+gdb
У меня есть программа на руку, и иногда она падает.
Я много учусь, но я не знаю, что делать.
При сбое программы генерируется файл 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......
Когда я изменяю эту программу и снова компилирую / запускаю, он аварийно завершает работу с другой библиотекой (libQtGuiE.so), а стек заполнен libQtGuiE.so. Некоторое время GDB пишет: "Обратный ход остановлен: предыдущий кадр находится внутри этого кадра (поврежденный стек?)"
Странно то, что я использовал 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.
Программа не много сбоев -> один раз в день.
Подскажите, пожалуйста, что мне делать?