【VS Code - Qt】Windows 10下VS Code如何进行嵌入式Qt程序GDB单步调试

根据之前的 tasks.json 文件,如果项目已经配置了使用 gdbserver 进行远程调试的功能。下面是如何进行单步调试的具体步骤:

单步调试配置

1. 首先创建调试配置文件

在 .vscode 目录下创建或修改 launch.json 文件:

json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug yourapp",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/yourapp",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "gdb",
            "miDebuggerServerAddress": "localhost:9091",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set disassembly flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Build and gdbserver yourapp"
        }
    ]
}

2. 启动调试

  1. 在 VS Code 中打开要调试的源文件(如 yourapp.cpp 或其他文件)
  2. 在想要设置断点的代码行左侧点击设置断点
  3. 按 F5 或点击调试按钮启动调试

3. 调试过程中可以使用的操作

  • 继续执行 (F5): 运行到下一个断点
  • 单步跳过 (F10): 执行当前行,但不进入函数内部
  • 单步进入 (F11): 进入函数内部逐行执行
  • 单步跳出 (Shift+F11): 执行完当前函数并返回到调用处
  • 重启调试 (Ctrl+Shift+F5): 重新开始调试会话
  • 停止调试 (Shift+F5): 停止调试会话

4. 查看和修改变量

在调试过程中,你可以:

  • 在左侧的"变量"面板中查看当前作用域内的所有变量
  • 在"监视"面板中添加特定变量或表达式进行监视
  • 在"调用堆栈"面板中查看函数调用层次
  • 在控制台中输入表达式来查看或修改变量值

5. 条件断点

你还可以设置条件断点:

  1. 右键点击行号左侧的断点红点
  2. 选择"编辑断点"
  3. 输入条件表达式,例如 i > 10
  4. 只有当条件满足时程序才会在该断点处停止

6. 调试工作原理

根据你的配置文件,调试过程如下:

  1. 执行 Make 任务编译项目
  2. 通过 SSH 停止设备上正在运行的 yourapp应用
  3. 将新编译的可执行文件通过 SCP 传输到目标设备
  4. 在目标设备上启动 gdbserver,监听 9091 端口
  5. 本地 VS Code 通过 gdb 连接到远程 gdbserver 进行调试

7. 注意事项

  • 确保目标设备(IP 地址为 192.168.1.111)可以通过网络访问
  • 确保目标设备上的 gdbserver 已正确安装
  • 确保本地有与目标设备架构匹配的 gdb 工具链
  • 如果遇到连接问题,检查防火墙设置是否允许 9091 端口通信

这样配置后,你就可以在 VS Code 中进行单步调试,就像调试本地程序一样,但实际执行的是远程 ARM 设备上的程序。

备注:Windows 10下VS Code如何进行嵌入式Qt程序GDB配置参考如下

https://github.com/Ed-Yang/rpidebug/blob/master/.vscode/launch.json

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值