且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Eclipse-cdt 配合 gdbserver 进行 arm 程序远程调试 上

更新时间:2022-09-14 19:53:27

做嵌入式Linux开发也不用再羡慕windows程序员VS集成开发环境的强大,我们同样能够搭建出给力的IDE。

今天在这里记录一下我使用Eclipse-cdt,gdb,gdbserver搭建远程arm调试的过程。

首先介绍下,嵌入式Linux的GDB调试环境由Host和Target两部分组成,Host端可以理解为本机,Target端为嵌入式设备。
Host端使用arm-linux-gdb,Target 端使用gdbserver。
调试时,应用程序在嵌入式目标系统上通过运行,而gdb调试在Host端。

    1. 编译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同目录

    1. 编译gdbserver
$ cd gdb/gdbserver
$ ./configure --host=arm-linux
$ make -j2
这里没有定义安装目录,因为gdbserver是运行在嵌入式设备端的。
make之后,gdbserver程序就在当前目录下,拷贝到tftpd目录后在设备端通过tftp命令下载
  1. 调试程序
    通过加-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端调试

  2. gdb指令可真多,我不是牛人,自认没那技术通过指令就能调试出想要的结果,结合eclipse的图形调试界面快速寻找答案才是我想要的。具体设置,请看下篇