在嵌入式开发中,如何使用QT去调试程序是很重要的。除了传统的qDebug打印调试之外,GDB也是业界公认的调试利器。在嵌入式环境中使用GDB相对麻烦一些,主要是利用开发板上的gdbserver和PC中虚拟机环境下的GDB联合调试。

一. 主机端调试器

  1. 下载调试器源码GDB: The GNU Project Debugger,我这里下载的是gdb-7.7.tar.gz。(我尝试了很多gdb版本,唯独这个版本成功了,一些低版本的GDB编译不通过,懒得找问题了,一些高版本虽然编译和安装都没问题,但是调试时会报内存溢出的错误,简直无语,也懒得找原因了)
  2. 解压缩tar zxvf gdb-7.7.tar.gz
  3. 安装一些必要的库文件:

    sudo apt-getinstall texinfo

    sudo apt-getinstall libncurses5-dev

    sudo apt-getinstall m4

    sudo apt-getinstall flex

    sudo apt-getinstall bison

  4. 配置:cd gdb-7.7                                                        ./configure --target=arm-linux

  5. 编译:make

安装:make install prefix=/home/clark/QtEnv/gdb-7.7/ (prefix后面时安装位置)                     

二. 编译开发板端调试器

  1. 删除之前解压的安装文件,重新解压,进入gdbserver的目录cd gdb/gdbserver
  2. 配置: ./configure --target=arm-linux --host=arm-linux
  3. 编译:make CC=arm-linux-gcc    (arm-linux-gcc是你开发板的交叉编译器,并且已经加入到环境变量中
  4. 编译成功后就在gdb/gdbserver目录下生成了gdbserver可执行文件,把它放到开发板中就可以了。

三. 设置开发板端

 

    在开发板上,执行 ./gdbserver 192.168.0.69:1231 ./app
    其中192.168.0.69是开发板的IP地址,1231是自定义的端口号,app就是要调试的可执行文件。 

 

    显示如下,说明gdbserver已经在运行了。

process filename created; pid = 319
Listening on port 1231

四. 设置主机端Qt Creator

    在构建中,添加我们编译完成的GDB

    进入调试-->开始调试-->Attach To Running Debug Server

    

    服务器端口就是开发板上自定义的端口号,override server address就是开发板IP地址,本地执行文档就是开发板中的app文件。设置好这些后,就可以调试了。

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐