网上看到很多文章,但一直配置不成功。都准备放弃了。然后稀里糊涂的配置成功了。估计没什么帮助,还是简单记录一下。
- 首先我使用 cmake 进行程序编译的。(其实跟这个没关联)
- 我配置成功后发现起作用的就是一个文件
.vscode/launch.json
. - 配置成功之后,通过菜单栏上面
Run
-Start Debugging
按钮(快捷键F5
)开始调试。(先要打断点,并且编译生产目标二进制文件。) - 插件说明,没有安装
code lldb
这个插件,发现不需要。 - 安装了
c++ debug
默认插件,也就是官方插件 C/C++ for Visual Studio Code 。
下面给出 launch.json
的全部内容
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(lldb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/cmake-build-debug/targetApp",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb"
}
]
}
需要自己修改的就是 "program": "${workspaceFolder}/cmake-build-debug/targetApp",
这一句。
我自定义了一个 shell 脚本,这样每次编译产生的二进制文件都是存放在当前目录的子目录
/cmake-build-debug/
下,然后生成的二进制文件名总是targetApp
.
总结一下我的调试步骤(在配置好launch.json
之后):
- 在程序中添加断点。(直接在 vscode 里面打就行了,跟在大部分 IDE 里面打断点方法一样,完全的图形界面操作,不需要执行任何命令。)
- 执行自定义编译脚本,生成目标二进制文件
/cmake-build-debug/targetApp"
。 - 按
F5
进行 debug 模式,程序自动跑到断点处停下。然后就是正常的debug操作,下一步下一步这些。
放一张断点状态的图:
这个程序很简单,不用说明逻辑了。
不足之处:
- 如果遇到
scanf()
这种需要手动输入的,还不清楚怎么处理. 通过文件重定向的方式不能解决。./targetApp < inout.txt
这样不行 - 目前这种只能直接debug运行进行调试,不能通过 attach 的方式去关联调试。