根据之前的 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. 启动调试
- 在 VS Code 中打开要调试的源文件(如 yourapp.cpp 或其他文件)
- 在想要设置断点的代码行左侧点击设置断点
- 按
F5或点击调试按钮启动调试
3. 调试过程中可以使用的操作
- 继续执行 (F5): 运行到下一个断点
- 单步跳过 (F10): 执行当前行,但不进入函数内部
- 单步进入 (F11): 进入函数内部逐行执行
- 单步跳出 (Shift+F11): 执行完当前函数并返回到调用处
- 重启调试 (Ctrl+Shift+F5): 重新开始调试会话
- 停止调试 (Shift+F5): 停止调试会话
4. 查看和修改变量
在调试过程中,你可以:
- 在左侧的"变量"面板中查看当前作用域内的所有变量
- 在"监视"面板中添加特定变量或表达式进行监视
- 在"调用堆栈"面板中查看函数调用层次
- 在控制台中输入表达式来查看或修改变量值
5. 条件断点
你还可以设置条件断点:
- 右键点击行号左侧的断点红点
- 选择"编辑断点"
- 输入条件表达式,例如
i > 10 - 只有当条件满足时程序才会在该断点处停止
6. 调试工作原理
根据你的配置文件,调试过程如下:
- 执行
Make任务编译项目 - 通过 SSH 停止设备上正在运行的 yourapp应用
- 将新编译的可执行文件通过 SCP 传输到目标设备
- 在目标设备上启动
gdbserver,监听 9091 端口 - 本地 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
4851

被折叠的 条评论
为什么被折叠?



