linux 编译 freescale arm 的gdb server
一、gdb server 的生成
1、官网下载 gdb-7.8.tar.gz
2、解压
$ tar zxf gdb-7.8.tar.gz
参考 gdb-7.8/gdb/gdbserver/README,按如下描述进行配置。
3、新建空目录
$ mkdir s-clean-gdb
$ cd s-clean-gdb
4、生成配置文件
s-clean-gdb$ export CC=arm-fsl-linux-gnueabi-gcc
s-clean-gdb$ ./../gdb-7.8/gdb/gdbserver/configure --build=$MACHTYPE --target=arm-fsl-linux-gnueabi --host=arm-fsl-linux-gnueabi
说明:--build 指定编译的主机类型,--target 意思是说目标平台是运行于arm体系结构的linux内核,--host 指定生成的程序所运行的环境
我使用的工具链在:/opt/arm-cross/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/ 下
5、编译
s-clean-gdb$ make
s-clean-gdb$ ls
6、验证
s-clean-gdb$ file gdbserver gdbserver: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31, not stripped
二、交叉gdb 的生成
1、重新解压 gdb-7.8
2、config 配置
gdb-7.8$ ./configure --target=arm-fsl-linux-gnueabi --prefix=/usr/local/gdb-7.8-arm-fsl-linux-gnueabi
3、make
4、sudo make install
三、交叉调试
1)在开发板上
# gdbserver :6666 hello
2) 主机上
~$ /usr/local/gdb-7.8-arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gdb
进入gdb 后,依次通过
file 加载文件,
target remote 192.168.1.80:6666 连接gdbserver
之后按正常的调试手段即可。
注意:本机的运行指令 r 在交叉调试时使用 c