Я использую GNUEABI для удаленной отладки устройства ARM, я могу устанавливать точки останова, шаг, просматривать память и т. д.
... в целом жизнь удалась
однако при произвольном прерывании, а затем набираю «информационные потоки», я получаю список потоков, но символы не разрешаются
Например
(gdb) info threads
7 Thread 10283 0x402a42a4 in ?? ()
6 Thread 10282 0x402a42a4 in ?? ()
5 Thread 10281 0x401c9d68 in ?? ()
4 Thread 10280 0x401c9d68 in ?? ()
3 Thread 10279 0x401cb3f4 in ?? ()
*2 Thread 10278 0x401cb294 in ?? ()
1 Thread 10195 0x0001c5e0 in ?? ()
если бы я установил точку останова, а затем ждал, пока она затронет все потоки, но тот, у которого есть точка останова, был бы таким, как указано выше, но поток с точкой останова разрешится
если я попытаюсь изучить обратную трассировку одного из этих потоков, я увижу что-то вроде этого
(gdb) bt
#0 0x003d0f00 in ?? ()
#1 0x0000027f in ?? ()
#2 0x00000277 in ?? ()
#3 0x4360c4e0 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
ПРИМЕЧАНИЕ: я не думаю, что стек поврежден, скорее я думаю, что gdb думает, что стек поврежден, что связано с проблемой и, вероятно, подсказкой?
идеи? - имейте в виду, когда точка останова попадает в стек вызовов, он выглядит великолепно.
libthread_db
? - person John Szakmeister   schedule 22.09.2012