ubuntu下qt+gdb+nfs远程调试arm环境搭建

       走了几天弯路总算是把qt调试配置搞定了,写点需要注意的事项吧,做个记录,也给有同样需求的同学参考,内容为本人原创,转载请注明原作者:s163l@163.com

 

主机:Ubuntu14.4系统, Qt5.5环境,主机nfs服务器目录为/opt/nfs.

      主机ip: 192.168.2.123

嵌入式主板: nxp imx6q,nfs挂载点为:/opt/nfs

      Arm ip: 192.168.2.6

默认linux+qt+nfs已正确安装并启动,

一 gdb安装篇:

  1. 下载gdb 7.8版本
  2.  http://ftp.gnu.org/gnu/gdb/
  3. Tar zxvf gdb-7.8.tar.gz
  4. ./configure --target=arm-linux-gnueabi --prefix=/opt/arm-gdb/

           Target编译器的头:注意此处不对容易造成编译不通过,请选择本机的编译器头

            Prefix=目标路径

     5. Make

     6. Make install

     7. 安装完毕可执行 arm-linux-gnueabi-gdb -v查看版本

二 gdb-server

  1. cd gdb/gdbserver
  2. ./configure  --target=arm-linux-gnueabi --host=arm-linux-gnueabi
  3. make
  4. 生成gdbserver cp /opt/nfs下

     主机端测试:

      #arm-linux-gnueabihf-gdb qtstart   //qtstart为编译生成目标

         (gdb) target remote 192.168.2.6:2345 //连接到开发板(需要提前在开发板上启动gdbserver 见下面三.3) 如出现下面提示        则连接成功,可以调试

      Remote debugging using 192.168.2.6:2345

      Reading /lib/ld-linux-armhf.so.3 from remote target...

      …

      0x76fcfb00 in _start () from target:/lib/ld-linux-armhf.so.3

       如果出现Remote ‘g’ packet reply is too long错误,则需要更改源码remote.c文件,重新编译。网上搜索一下参考,我这里就不提了。

三 QT下使用GDB远程调试ARM板

  1. 使用qt创建一个工程,存储位置自定。但需要将项目构建目录调整nfs目录下:/opt/nfs/build-qtstart-debug。
  2. 编译工程,此时在arm板上对应的nfs下会生成可执行文件。
  3. Arm开发板上启动gdb

         gdbserver :2345 /opt/nfs/build-qtstart-debug/qtstart -qws

         2345为自定义端口,后面指定目标程序 最后是qws参数

     4. Qt菜单启动 选择debug-> attach to running debug server

 

    服务器端口选择自定义的2345

    Override server address 选择arm ip:192.168.2.6

    本地执行档选择刚才编译的可执行文件 /opt/nfs/build-qtstart-debug/qtstart

    工作目录同上。点击ok,此时显示启动器加载成功,可以调试。注意把main函数断点选上。

注意:如果上表没有填上arm ip地址,会提示Not enough free ports on device for debugging.

连接成功后单步运行可看到调试界面如下:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值