我正在尝试调试在 ARM926EJ-S rev 5 (v5l) 上运行的 C 程序。该软件与标准交叉编译(并静态链接)。arm-linux-gnueabi 编译器(通过突触安装)。我运行Ubuntu 13.04 64bit。设备上有一个Busybox v1.18.2。我成功编译了gdbserver(使用host=arm-linux-gnueabi)和gdb(使用target=arm-linux-gnueabi),并且可以通过本地运行的gdb在嵌入式设备上启动我的程序......我现在的问题是,我没有正确的回溯输出。
gdb的消息:
Remote debugging using 192.168.21.127:2345
0x0000a79c in ?? ()
(gdb) run
The "remote" target does not support "run". Try "help target" or "continue".
(gdb) continue
Continuing.
Cannot access memory at address 0x0
Program received signal SIGINT, Interrupt.
0x00026628 in ?? ()
(gdb) backtrace
#0 0x00026628 in ?? ()
#1 0x00036204 in ?? ()
#2 0x00036204 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
我尝试使用-g、-g3 -gdwarf-2、-ggdb、-ggdb3编译软件,没有任何区别。
有人知道我在这里缺少什么吗?
这可能是 BusyBox 的问题,还是我的主机系统上需要额外的库?
我还尝试了execinfo.h中的函数backtrace_symbols,输出几乎相同......
提前感谢您的任何回复。