我使用GNUEABI远程调试的ARM设备列表线程/堆栈与GDB,我能够设置断点,步骤,查看内存等困难的ARM
...一般的生活好
然而,当断任意然后键入“信息线”我得到线程的列表,但是这些符号的arent解决例如
(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想堆栈腐败有关的问题,并可能暗示?
想法? - 请记住,当断点触及调用堆栈时看起来不错。
查看/ proc//maps以查看这些地址是否在您期望的文件中。如果您使用> O0,您是否有-fno-omit-frame-pointer? (也可能是-mapcs-frame) –
auselen
我想知道你是否在使用正确的'libthread_db'? – jszakmeister