做嵌入式Linux开发也不用再羡慕windows程序员VS集成开发环境的强大,我们同样能够搭建出给力的IDE。
今天在这里记录一下我使用Eclipse-cdt,gdb,gdbserver搭建远程arm调试的过程。
首先介绍下,嵌入式Linux的GDB调试环境由Host和Target两部分组成,Host端可以理解为本机,Target端为嵌入式设备。
Host端使用arm-linux-gdb,Target 端使用gdbserver。
调试时,应用程序在嵌入式目标系统上通过运行,而gdb调试在Host端。
编译gdb
在GNU官网下载最新版GDB,我这里下载的是7.2版本gdb-7.2.tar.gz
$ tar xvf gdb-7.2.tar.gz$ cd gdb-7.2$ ./configure--target=arm-linux--prefix=/home/aliang/arm-gdb$ make -j2$ make install
可以通过export命令将/home/aliang/arm-gdb/bin目录加入PATH,使arm-linux-gdb可以直接使用,也可以直接拷贝到/usr/bin 或arm-linux-gcc同目录
编译gdbserver
$ cd gdb/gdbserver$ ./configure --host=arm-linux$ make -j2这里没有定义安装目录,因为gdbserver是运行在嵌入式设备端的。make之后,gdbserver程序就在当前目录下,拷贝到tftpd目录后在设备端通过tftp命令下载
调试程序
通过加-g参数 交叉编译带调试信息的程序
$ arm-linux-gcc -g ipcam.c -o ipcam
拷贝到设备端后,使用gdbserver打开程序
$gdbserver <host-ip>:10000 ipcam
主机使用arm-linux-gdb调试程序
$ arm-linux-gdb ipcam
输入gdb远程调试指令
(gdb) target remote <target-ip>:10000
这时,设备端打印
Remote debugging from host 192.168.1.102
说明远程调试已经建立起,可以开始在host端调试
gdb指令可真多,我不是牛人,自认没那技术通过指令就能调试出想要的结果,结合eclipse的图形调试界面快速寻找答案才是我想要的。具体设置,请看下篇
如果觉得《Eclipse-cdt 配合 gdbserver 进行 arm 程序远程调试 上》对你有帮助,请点赞、收藏,并留下你的观点哦!