此篇文章的配置可以调试工作区中子文件夹中的cpp文件
- 在工作区下建立 .vscode文件夹
- 在该文件夹下建立 launch.json文件
{ "version": "0.2.0", "configurations": [ { "name": "c++调试", // 配置名称,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,这里只能为cppdbg "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加) "program": "${fileDirname}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径 "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可 "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false "cwd": "${workspaceRoot}",// 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录 "environment": [], "externalConsole": true,// 调试时是否显示控制台窗口,一般设置为true显示控制台 "MIMode": "gdb", "miDebuggerPath": "C:\\XXXX\\bin\\gdb.exe",// miDebugger的路径,注意这里要与MinGw的路径对应 "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
-
在该文件下建立tasks.json文件
{ "version": "2.0.0", "tasks": [{ "label": "g++", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe" ], "problemMatcher": { "owner": "cpp", "fileLocation": [ "relative", "${workspaceRoot}" ], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } }, "group": { "kind": "build", "isDefault": true } } ] }
在配置文件中使用到的一些常用的预定义变量
支持下面的预定义变量:${workspaceFolder} - 当前工作目录(根目录) ${workspaceFolderBasename} - 当前文件的父目录 ${file} - 当前打开的文件名(完整路径) ${relativeFile} - 当前根目录到当前打开文件的相对路径(包括文件名) ${relativeFileDirname} - 当前根目录到当前打开文件的相对路径(不包括文件名) ${fileBasename} - 当前打开的文件名(包括扩展名) ${fileBasenameNoExtension} - 当前打开的文件名(不包括扩展名) ${fileDirname} - 当前打开文件的目录 ${fileExtname} - 当前打开文件的扩展名 ${cwd} - 启动时task工作的目录 ${lineNumber} - 当前激活文件所选行 ${selectedText} - 当前激活文件中所选择的文本 ${execPath} - vscode执行文件所在的目录 ${defaultBuildTask} - 默认编译任务(build task)的名字
预定义变量示例:
假设你满足以下的条件
一个文件 /home/your-username/your-project/folder/file.ext 在你的编辑器中打开; 一个目录 /home/your-username/your-project 作为你的根目录.
下面的预定义变量则代表:
${workspaceFolder} - /home/your-username/your-project ${workspaceFolderBasename} - your-project ${file} - /home/your-username/your-project/folder/file.ext ${relativeFile} - folder/file.ext ${relativeFileDirname} - folder ${fileBasename} - file.ext ${fileBasenameNoExtension} - file ${fileDirname} - /home/your-username/your-project/folder ${fileExtname} - .ext ${lineNumber} - 光标所在行 ${selectedText} - 编辑器中所选择的文本 ${execPath} - Code.exe的位置
详细信息可以去 https://zhuanlan.zhihu.com/p/92175757 查看
-
点击调试即可