调试程序
-
首先创建cpp文件,确保是在英文路径下
-
点击debug按钮,点击运行调试
- 在自动生成的.vscode文件夹中替换以下代码
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "gdb.exe",
"preLaunchTask": "compile",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
},
]
}
tasks.json
如果需要是c语言也就是gcc将下面的command项由g++改为gcc
如果是多文件编译(即函数声明和函数定义分开,不懂的别乱改),需要将args列表中的"
f
i
l
e
"
项修改为
"
{file}"项修改为"
file"项修改为"{workspaceFolder}/*.cpp" ,多文件推荐用cmake
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "compile",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
事实上现在已经可以正常调试了,并且现在可以按 ctrl+shift+b 直接调用配置好的task编译而不运行程序,类似于一些IDE的编译选项
测试一下,新建一个.cpp文件将下面的代码粘贴进去,并在适当的地方添加上断点
按f5或者启动调试的按钮启动调试,程序执行到断点处会停下
顶部六个按钮分别代表
-
继续执行到下一个断点处
-
执行下一条语句,遇到函数直接执行完不会跳转进函数
-
执行下一条语句,遇到函数会跳转进函数继续单步执行
-
跳出当前所在的函数,如果是主函数会结束程序
-
重新启动调试
-
结束调试
集成终端在底部终端栏输入数据,如果是希望像vs2019一样,启动调试后显示外部窗口而不是在vscode集成终端进行调试
只需将launch.json中的"externalConsole"后面的值由false改为true
tips
在单步调试的过程中我们可以添加监视来实时监视变量或表达式值的变化
也可以在调试控制台中输入想获取结果的变量名或者表达式获得当前的值
或者直接将鼠标光标移动到变量位置上,会自动显示当前变量的值
如果数组开得过大或者是一些结构较复杂的类或结构体,查询或显示值可能会导致调试程序崩溃
强调:调试是属于工作区设置,当前配置的调试环境只会对当前.vscode文件夹所在路径下的文件生效,如果要换用别的文件夹,可以直接把.vscode这个文件夹拷贝过去
重点是把"miDebuggerPath": “gdb.exe”,设置对
作区设置,当前配置的调试环境只会对当前.vscode文件夹所在路径下的文件生效,如果要换用别的文件夹,可以直接把.vscode这个文件夹拷贝过去
重点是把"miDebuggerPath": “gdb.exe”,设置对