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

C BusyBox上没有交叉编译ARM的调试符号,c,gdb,arm,cross-compiling,gdbserver,C,Gdb,Arm,Cross Compiling,Gdbserver,我正在尝试调试一个C程序,它运行在ARM926EJ-S rev 5(v5l)上。该软件与标准arm linux gnueabi编译器(通过synaptic安装)进行了交叉编译(静态链接)。我运行Ubuntu 13.04 64位。设备上有一个总线箱v1.18.2。我成功地编译了gdbserver(使用host=arm-linux-gnueabi)和gdb(使用target=arm-linux-gnueabi),并且可以通过本地运行的gdb在嵌入式设备上启动我的程序。。。 我现在的问题是,我没有正确

我正在尝试调试一个C程序,它运行在ARM926EJ-S rev 5(v5l)上。该软件与标准arm linux gnueabi编译器(通过synaptic安装)进行了交叉编译(静态链接)。我运行Ubuntu 13.04 64位。设备上有一个总线箱v1.18.2。我成功地编译了gdbserver(使用host=arm-linux-gnueabi)和gdb(使用target=arm-linux-gnueabi),并且可以通过本地运行的gdb在嵌入式设备上启动我的程序。。。 我现在的问题是,我没有正确的回溯输出

广发银行电文: 我尝试用-g,-g3-gdwarf-2,-ggdb,-ggdb3编译软件,没有任何差异

有人知道我错过了什么吗

这是BusyBox的问题还是主机系统上需要额外的lib

我还尝试了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
1)运行gdb进程并使用attach命令将您的进程附加到gdb
2) 在gdb中使用c命令继续您的进程
无论何时,只要找到任何SIGINT或SIGSEGV,就使用gdb中的bt命令引用进程堆栈。

尝试谷歌solib绝对前缀,并在远程主机上使用
文件target.elf
,这样它就有了符号表。默认情况下,GDB不会从远程传输符号,它希望您在主机调试器的文件系统上拥有这些符号。。
1)Run gdb process and attach your process to gdb using attach <pid> command
2)Continue your process using c command in gdb