1、首先我们是编译gdbserver,查找arm板系统上有没有可用的gdbserver,可以在根目录通过find -name gdbserver 查找,或者自己编译自己的gdbserver ,编译方法是
环境说明:
ubuntu16.4 x86_64
ununtu交叉编译环境
IMX6UL嵌入式平台
编译gdbserver,现有的gdb都是基于X86平台下的,如果需要在IMX6UL平台下运行,则需要下载gdb源码并进行交叉编译后方可在IMX6UL平台下运行。操作如下:
下载gdb源码:http://ftp.gnu.org/gnu/gdb/ ,我下载的是最新版本8.1
拷贝源码到Linux平台下,解压 :tar -xvf gdb-8.1.tar.xz
cd进入gdb-8.1目录,配置gdb:./configure --host=arm-poky-linux-gnueabi,make开始编译,不太漫长的等待。。。微笑微笑微笑(gdb编译失败了,不纠结。我不需要gdb,我只需要gdbserver),进入gdb/gdbserver编译gdbserver。就是make了。
在gdb/gdbserver目录下得到gdbserver在将其拷贝到ARM板IMUX6UL环境下的/usr/bin/(FTP、TFTP随便了。。。)
在ARM终端下输入修改gdbserver权限然后查看gdbserver能否能正常运行;
root@myd-y6ul14x14:~# gdbserver --version
GNU gdbserver (GDB) 8.1
Copyright (C) 2018 Free Software Foundation, Inc.
gdbserver is free software, covered by the GNU General Public License.
This gdbserver was configured as "arm-poky-linux-gnueabi"
2、安装gdb-multiarch:
这个简单了,sudo apt-get install gdb-multiarch安装完成,运行如下:
联网直接在虚拟机上获取gdb-multiarch,安装后在/usr/bin/目录下查看到有gdb-multiarch文件;
3、接下来是配置QtCreater
图1 添加Debuggers
接下来在自己的交叉编译5.9.3构建下选择图1中创建的gdb_multiarch。
图2 交叉编译5.9.3选择gdb_multiarch
接下来配置主机(也就是ARM板)设备IP相关;我的Arm 板IP 10.181.34.1 用户名yz密码yz; 个人台式机IP 10.181.34.141.
3、启动远程调试
a)交叉编译自己的Qt程序,必须选用Debug模式,比如我自己用的交叉编译是5.9.3Debug,如下图;
全编译后,将生成的hmi考到ARM板上;
b)我使用的是带有桌面系统的,在ARM板上打开终端输入 gdbserver 10.181.34.1:8888 hmi
观察终端显示在监听;
c)配置Qt远程debug如下选择连接远程debug server;
接下来即可;
部分参考链接:https://blog.csdn.net/ying1feng23/article/details/80563702