没有调试符号在BusyBox上交叉编译ARM

我试图调试一个C程序,它运行在ARM926EJ-S rev 5(v5l)上 。 该软件与std 交叉编译 (并静态链接)。 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 ...

预先感谢您的回复。


调试的另一种方法是使用板内gdb,遵循以下步骤。

1)Run gdb process and attach your process to gdb using attach <pid> command
2)Continue your process using c command in gdb

每当你发现任何SIGINT或SIGSEGV,然后在gdb中使用bt命令来引用你的进程的堆栈。

链接地址: http://www.djcxy.com/p/86935.html

上一篇: No Debug Symbols cross compile ARM on BusyBox

下一篇: Cross compilation: GCC ignores