求教:OK6ULL-C的Qt如何远程调试
环境说明:OK6ULL-C开发板+release-6ull-u18虚拟机;尝试该操作前Qt 已按所提供手册配置。1、开发板虚拟机的编译环境配置文件 environment-setup-cortexa7hf-neon-poky-linux-gnueabi 中似有关于 GDB 的语句,所以尝试;
2、添加GDB,为编译环境加入GDB配置,
Tools->Options->Build & Run->Debugers->Manual
Name: arm-poky-linux-gnueabi-gdb
Path: /opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb
Tools->Options->Build & Run->Kits->Manual->qt5.6.2 添加指定Debuger项目
Debugger: arm-poky-linux-gnueabi-gdb
3、为尝试远程调试,新建Qt 窗体工程TestDebug,编译通过,在开发板用 SCP 指令可以传至开发板正确运行;
4、在Qt IDE 下设置Device,Tools->Options->Device,Device:Generic Linux Device(default for Generic Linux),点击“Test”按钮,测试通过
Device test finished successfully.
5、为工程文件 TestDebug.pro 添加相关语句,在文件尾部添加如下两行
target.path=/home/root/qt_my/TestDebug
INSTALLS+=target
则点击Qt IDE 左下方 ▲ 运行按钮时不会产生错误信息:Cannot run: no command given
6、编译工程,或直接点击Qt IDE 左下方 ▲ 运行按钮,工程处于 Depoly 步骤,则报错信息如下:
SFTP initialization failed: The SFTP server finished unexpectedly with exit code 127
此错误信息在本人网上查到的信息很少,难以借鉴,哪个高手有办法解决,请不吝赐教。
本帖最后由 Vincentwangwt 于 2024-4-26 15:16 编辑
还是要自己尝试,自己回答。
前面5步不变。
6、编译工程,但不直接点击Qt IDE 左下方 ▲ 运行按钮,这在当前仍走不通;
7、将编译生成的运行文件,在终端工具以 scp 指令,或在主机下以 FileZilla 将文件传入开发板,以下行命令开启 gdbserver
gdbserver 开发板IP:2345 ./运行文件名
终端工具返回信息如下,表示开发板上 gdb 服务已启动
Process ./fltest_qt_backlight created; pid = **x
Listening on port 2345
8、虚拟机上,Qt,Debug->Start Debugging->Attach to Running Debug Server... ,打开 Start Debugger 对话框
Kit qt5.6.2
Server port 2345
Local executable: 运行文件在虚拟机的完整路径(以 Browser 选取)
Command line arguments:
Working directory:
Run ing terminal:
Break at "main": √选取
Recent:可以选择以往的调试设置记录
点击 OK ,设置完成;
9、这时 Qt IDE 下方会显示出调试工具及界面,按 F5 ,即可启动程序的运行调试;若设置的 core 大小,可以在开发板运行路径中得到该调试信息文件以供分析。
(个人感觉,该工具没有 VS 的使用方便和直观)
该方法可以使用,但恐怕不能算真正的远程调试。
参考资料:
https://blog.csdn.net/qq_42952079/article/details/126851205
Linux-gdb调试方式一(QT远程调试开发板应用)
页:
[1]