对于嵌入式linux应用程序开发调试一般采用gdb+gdbserver的形式。具体步骤罗列如下:
1)首先查看安装在你linux上的arm-linux-gdb的版本,然后在http://ftp.gnu.org/gnu/gdb/上下载对应的gdb。如果arm-linux-gdb和gdbserver的版本不一致,在连接调试的时候会出现像如下信息
Malformed packet(b) (missing colon): ore:0;
Packet: 'T050b:00000000;0d:804ebdbe;0f:b0070040;thread:2f8;core:0;'
2)交叉编译gdbserver,进入./gdb/gdbserver目录,执行如下命令./configure --host=arm-linux --prefix=/home/gdb,make,make install。用nfs将/home/gdb/bin/gdbserver拷贝到目标板。
3)运行arm-linux-gdb可能会出现像
gdb: error while loading shared libraries: libexpat.so.1: cannot open shared object file: No such file or directory
gdb: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
解决方法:
ln -s /usr/lib/libexpat.so /usr/lib/libexpat.so.1,
ln
-s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5。更加具体的解决方法请参考:
http://blog.chinaunix.net/uid-26212859-id-3256667.html
4)运行arm-linux-gdb
5)运行gdbserver,./gdbserver 192.168.1.26 g2u(要调试的程序可执行文件)
6)在宿主机上敲入命令
target remote 192.168.1.232 :2345
表示与目标机远程连接成功,现在可以像调试宿主机程序一样调试目标板的程序了。