一、首先要做以下准备工作:
(1)主机上安装了交叉编译工具。
(2)下载GDB安装包,地址:http://ftp.gnu.org/gnu/gdb/
http://ftp.gnu.org/gnu/gdb/gdb-7.8.tar.xz
二、安装GDB
(1)解压源码包
$ tar -zxvf ./source/gdb-7.8-tar.gz
$ cd gdb-7.8
(2)配置
export PATH=$PATH:/root/board/tools/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin
# export PATH=$PATH:/opt/arm-linux-gnueabi-4.8.3/bin
=============apt-get install python
=============apt-get install python-dev
./configure --prefix=/opt/gdb78-gcc --target=arm-linux-gnueabihf --with-python --with-sysroot
# ./configure --prefix=/opt/gdb-forlinx --target=arm-linux-gnueabi --with-python
--with-sysroot目的是让这个gcc在编译的时候默认到{--with-sysroot}/usr/include下找内核和库头文件
配置很简单,只需要配置--target和--prefix,指定目标板体系结构和安装路径即可。
注意 export PATH=$PATH:/root/board/tools/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin # 交叉编译器路径
(3)编译
$ make -j4
(4)安装
$ make install
编译结果在/opt/gdb78-gcc目录下,arm-linux-gnueabihf-gdb既是GDB工具。
三、编译gdbserver
gdbserver源码包含在GDB源码中,所以继续以上操作即可。
(1)进入gdbserver源码路径
$ cd gdb-7.8/gdb/gdbserver
(2)指定编译器
$ export PATH=$PATH:/root/board/tools/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin
$ ./configure --host=arm-linux-gnueabihf
(3)编译
$ make -j4
注意:gdbserver不需要make install。
编译生成的gdbserver是在目标板上可执行的程序,复制到目标板中即可使用。
四、测试
将编译生成的 gdbserver 复制到目标板/bin上,修改执行权限,然后测试一个简单的usrapp程序:
$ cp gdbserver /bin # 复制gdbserver到命令专用目录
$ chmod +x /bin/gdbserver # 增加为可执行权限
$ gdbserver 192.168.1.108:1111 usrapp -qws # 启动调试,等待主机连接
Process helloworld created; pid = 698
Listening on port 1111
如上,gdbserver 已经执行,并侦听指定的1111端口。
这时切换到宿主机的控制台,运行
[root@localhost] arm-linux-gnueabihf-gdb usrapp
(gdb) target remote 192.168.1.100:1111
=================================
cd /usr/apps/
gdbserver 192.168.1.108:1111 usrapp -qws
=================================
arm-linux-gnueabihf-gdb usrapp
=========================参考文档=======================================
http://www.myir-tech.com/bbs/forum.php?mod=viewthread&tid=28
https://blog.csdn.net/Chris_Tsai/article/details/52389943?locationNum=12&fps=1
https://blog.csdn.net/yj4231/article/details/7829686