QT ARM开发板调试
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