QT远程调试的部署及问题的解决

本文档详细介绍了在Ubuntu 14.04环境下,如何为树莓派3B搭建QT远程调试环境,包括编译安装GDB和GDBserver,解决Remote 'g' packet reply is too long错误,并在QTcreator中配置远程调试。步骤涵盖从NFS共享文件夹到GDB和GDBserver的交叉编译,以及QTcreator的调试器设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前QT程序的调试都是通过TFTP传输的模式来进行,很不方便,并且无法做到单步调试, 之后搭建了NFS共享文件夹,略微简化,但是还是无法做到细致的调试,因此搭建QT远程调试是非常好的选择,网上很多教程都比较老旧,因此有了此文。


平台:

主机:ubuntu 14.04 LTS

开发板:树梅派3 b

Qtcreator:3.0.1

QT :4.8.7

GDB: gdb 7.7.1


在开始之前,我们需要建立nfs共享文件夹,保证开发板和PC在一个网段内。



一、编译安装GDB

sudo apt-get install texinfo libncurses5-dev m4 flex bison 

预装,不然make的时候会报错error: no termcap library found     ,error: makeinfo is required for compilation

1、下载gdb7.7.1   链接:https://mirrors.tuna.tsinghua.edu.cn/gnu/gdb/  

       tar -zxvf gdb-7.4.tar.gz

2、编译arm-linux-gdb

  进入解压后的gdb-7.7.1下

   cd gdb-7.7.1

   $./configure --target=arm-linux  --prefix=/usr/local/arm-gdb7.7.1 --with-python     (Qtcreator3.1版本开始,需要python模块支持)

   make  -j4

   make install

   安装目录为  /usr/local/arm-gdb7.7.1

3、编译gdbserver  (开发板运行的东西,开发板和PC通过gdbserver和gdb对接起来)

      进入解压出来的gdb-7.7.1目录,

      cd gdb/gdbserver

      sudo mkdir obj(建个文件夹,起来方便些,个人习惯

      cd obj

      ../configure  --target=arm-linux  --host=arm-linux

      make -j4

      make成功,生成gdbserver


4、将gdbserver 放到开发板上,并且随便写个简单的测试代码mygdbtest,也放到开发板上去。

mygdbtest.c

#include<stdio.h>

main()

{

printf("West Wind Electronics/n");

}


在开发板上运行         

### 使用 QtCreator 进行远程调试的教程 #### 一、基本概念 QtCreator 提供了一种便捷的方式来进行远程调试,允许开发者在本地机器上编写代码并将其部署到目标设备上运行和调试。这适用于多种场景,比如嵌入式开发中的 ARM 开发板调试或跨网络的 Windows/Linux 调试。 --- #### 二、配置步骤 ##### 1. **设置远程设备** 为了能够通过 QtCreator 对远程设备进行操作,需要先定义该设备的相关参数。 - 打开 QtCreator 的 `Tools` -> `Options` -> `Devices` 页面。 - 点击 `Add...` 来添加一个新的设备条目。 - 输入远程设备的 IP 地址、用户名以及密码(如果使用 SSH 密钥,则需指定密钥路径)。这些信息可以通过其他工具如 MobaXterm 预先测试其连通性和可用性[^3]。 - 完成填写后点击 `Test` 按钮来确认连接无误。 ##### 2. **创建或修改 Kit** Kit 是指一组用于构建项目的工具链集合,其中包括编译器、调试器和目标设备等要素。 - 前往 `Projects` 模块,在左侧项目树中右键单击当前工程名选择 `Manage Kits...`. - 新增一个 kit 或者编辑现有的一项使其匹配所选的目标硬件平台。 - 在此过程中要特别注意的是对于ARM架构下的应用应当选用支持交叉编译的GCC版本,并且将调试器设定为 gdb-multiarch [^2]. ##### 3. **启动调试会话** 当所有的前期准备工作完成后即可着手实际的调试工作。 - 返回至主界面切换到 Debug 视图 (`Window`->`Show View`->`Debug`)。 - 如果是在Windows环境下针对另一台PC上的进程做分析则按照如下方式执行: - 选取菜单栏里的 “调试” → 启动调试 → 挂接至 CDB 会话; - 设置 TCP 参数例如 server=192.168.x.xxx,port=yyyy (这里的 xxx 和 yyyy 应替换为你真实环境中对应服务器端口的具体数值)[^1]. - 当一切就绪之后按下 OK 键从而正式开启整个流程直至完成预期的任务为止。 --- #### 三、注意事项 - 确保防火墙不会阻止必要的通信端口开放给外部访问。 - 不同的操作系统可能有不同的权限需求,请确保拥有足够的权利去操控相关资源和服务。 - 对于某些特定类型的处理器来说,也许还需要额外安装驱动程序或者其他辅助软件才能顺利达成目的。 ```bash ssh user@remote_device_ip 'echo $PATH' ``` 上述命令可以帮助检查远端系统的环境变量是否正确设置了所需的路径项以便加载相应的库文件和支持脚本。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值