步骤
- 新建一个文件
- 添加c_cpp_properties.json、launch.json、tasks.json文件
- 写代码开始调试
json脚本范例
c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceRoot}",
//TODO: 根据情况修改
"E:/MinGW/lib/gcc/mingw32/6.3.0/include/c++",
"E:/MinGW/lib/gcc/mingw32/6.3.0/include/c++/mingw32",
"E:/MinGW/lib/gcc/mingw32/6.3.0/include/c++/backward",
"E:/MinGW/lib/gcc/mingw32/6.3.0/include",
"E:/MinGW/lib/gcc/mingw32/6.3.0/include/c++/tr1",
"E:/MinGW/mingw32/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"__GNUC__=6",
"__cdecl=__attribute__((__cdecl__))"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"${workspaceRoot}",
//TODO: 根据情况修改
"E:/MinGW/lib/gcc/mingw32/6.3.0/include/c++",
"E:/MinGW/lib/gcc/mingw32/6.3.0/include/c++/mingw32",
"E:/MinGW/lib/gcc/mingw32/6.3.0/include/c++/backward",
"E:/MinGW/lib/gcc/mingw32/6.3.0/include",
"E:/MinGW/lib/gcc/mingw32/6.3.0/include/c++/tr1",
"E:/MinGW/mingw32/include"
]
},
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": "",
"compilerPath": "E:/VS2015/VC/bin/cl.exe", //TODO: 根据情况修改
"cStandard": "c11", //TODO: 根据情况修改
"cppStandard": "c++11" //TODO: 根据情况修改
}
],
"version": 4
}
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"targetArchitecture": "x86", // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
"program": "${file}.exe", // 将要进行调试的程序的路径
"miDebuggerPath": "E:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应, //TODO: 根据情况修改
"args": [
"blackkitty",
"1221",
"# #"
], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"preLaunchTask": "g++" // 调试会话开始前执行的任务,对应tasks.json中的label名
}
]
}
tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "g++", //这个与lauch.json中的preLaunchTask要保持一致
//"type": "shell",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${file}.exe"
],
"group": "build",
"presentation": {
// Reveal the output only if unrecognized errors occur.
"reveal": "silent"
},
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
]
}