QT和VSCode采用gdbsever 远程调试ARM开发板程序

一、QT联调方式

QT应用程序在 ARM 开发板上完全可以进行调试。

以下是完整的调试方案和配置方法:

1. 调试方式概览

调试方式适用场景所需工具特点
GDB 远程调试代码级调试gdbserver + gdb-multiarch最强大的调试方式
QT Creator 远程调试    集成开发环境调试    QT Creator + gdbserver   开发体验最好
日志调试      简单问题排查   qDebug/qInfo  最简便的方式
性能分析 性能优化 perf/gprof  针对性能问题

2. GDB 远程调试配置


开发板端 (Target) 配置
# 安装 gdbserver
apt-get install gdbserver  # 适用于 Debian/Ubuntu
opkg install gdb gdbserver # 适用于 OpenWRT
 
# 运行 gdbserver
gdbserver :2345 ./your_qt_app
主机端 (Host) 配置
# 安装交叉编译版 gdb
sudo apt install gdb-multiarch
 
# 启动调试
arm-linux-gnueabihf-gdb ./your_qt_app
(gdb) target remote 192.168.1.100:2345  # 开发板IP
(gdb) continue


3. QT Creator 集成调试


配置设备连接:

菜单栏:工具 → 选项 → 设备 → 添加 Generic Linux 设备

输入开发板IP、用户名和密码

配置调试器:

sudo apt install gdb-multiarch
在 QT Creator:工具 → 选项 → Kits → 调试器

添加路径 /usr/bin/gdb-multiarch

项目配置:

项目 → 运行 → 部署配置:添加部署步骤

在 "Run" 配置中设置可执行文件和参数

4. 高级调试技巧


核心转储分析
# 开发板上
ulimit -c unlimited
echo "/tmp/core.%e.%p" > /proc/sys/kernel/core_pattern
 
# 主机分析
arm-linux-gnueabihf-gdb ./your_qt_app /tmp/core.app.1234
QML 调试
# 运行命令添加参数
./your_app -qmljsdebugger=port:3768,block
图形调试
export QT_LOGGING_RULES="qt.qpa.*=true"
export QT_DEBUG_PLUGINS=1


5. 常见调试问题解决


问题1:调试符号缺失

# 编译时确保添加-g选项
QMAKE_CXXFLAGS += -g
# 或者使用 CONFIG += debug
问题2:断点不生效

检查编译优化级别,建议使用 -O0

确认主机和目标文件完全一致

问题3:QT Creator 无法连接

# 开发板上检查sshd服务
service ssh status
# 检查防火墙
iptables -L
问题4:QML 调试连接失败

确保开发板开放了指定端口

检查是否使用了 CONFIG+=qml_debug

6. 性能调试工具


# 在开发板上运行
perf top -p `pidof your_qt_app`
# 或
valgrind --tool=callgrind ./your_qt_app

二、VSCode远程联调方式:

 前提条件:

  • 确保本机已经安装 VS Code。
  • 确保本机已安装 SSH client, 并且确保远程主机已安装 SSH server。
  • VSCode 已经安装了插件 C/C++。

本次搭建的环境:

  • 主机:windows 10
  • 服务器:ubuntu 18.04
  • VSCode 版本:February 2020 (version 1.43)
  • Arm: (已配置好编译工具链和 gdb server)

连接远程主机

Remote Development

首先安装 Remote Development 插件,安装完成之后:

 

要使用VS Code进行远程调试ARM开发板,首先需要确保本机已经安装了VS Code。然后,需要安装Remote Development插件。安装完成后,按照以下步骤进行配置调试: 1. 配置开发板:确认你的ARM开发板已经配置好编译工具链GDB服务器。 2. 连接远程主机:使用VS Code的Remote Development插件连接到远程主机。 3. 安装gdb:在远程主机上安装GDB调试器。 4. 配置VS Code:在本地机器上配置VS Code以与远程主机进行调试通信。 具体步骤如下: 1. 确保你的ARM开发板已经配置好编译工具链GDB服务器。这样,你就可以在开发板上运行gdbserver命令,将开发板与本地机器建立调试连接。 2. 使用VS Code的插件市场安装Remote Development插件。 3. 打开VS Code并点击左侧的远程开发图标(类似于飞船的图标)。在弹出的菜单中选择"Remote-SSH: Connect to Host"。然后,在输入框中输入你的远程主机地址凭据。 4. 连接到远程主机后,打开VS Code的终端,运行以下命令来安装gdb: ``` sudo apt-get install gdb ``` 5. 在VS Code的终端中,输入以下命令来启动gdbserver并与ARM开发板建立调试连接: ``` gdbserver 192.168.0.102:1234 ./your_program ``` 其中,192.168.0.102是你的远程主机的IP地址,1234是你指定的端口号,your_program是你要调试程序的路径。 6. 在本地机器上,打开VS Code的左侧侧边栏并选择调试视图(类似于虫子的图标)。点击配置按钮,在弹出的菜单中选择"Add Configuration"。 7. 在弹出的配置文件中,选择"Cpp Debug"作为调试器,并将其配置如下: ``` "configurations": [ { "name": "(gdb) Attach to remote", "type": "cppdbg", "request": "attach", "remoteMachine": "192.168.0.102", "remoteWorkspaceRoot": "/path/to/your/workspace", "remoteCwd": "/path/to/your/program", "program": "/path/to/your/program", "targetArchitecture": "arm", "gdbpath": "gdb" } ] ``` 请将"remoteMachine"、"remoteWorkspaceRoot"、"remoteCwd"、"program""gdbpath"字段替换为你的实际值。 8. 保存配置文件并退出。现在,你可以在VS Code中点击调试按钮来启动远程调试会话。 9. 在调试会话中,你可以设置断点、单步执行观察变量值,就像在本地机器上调试一样。 总结一下,要在VS Code中进行远程调试ARM开发板,需要安装Remote Development插件、配置本地机器远程主机的连接,并使用gdbserver建立调试连接。然后,在VS Code中配置调试器并启动调试会话。这样,你就可以像在本地机器上一样调试ARM开发板上的程序了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [VSCode 搭建 Arm 远程调试环境的步骤详解](https://download.csdn.net/download/weixin_38618094/13739897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用vscode远程调试arm-linux开发板](https://blog.csdn.net/weixin_45829566/article/details/108925998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值