1、基本常识
launch.json
lunch.json 用于配置vscode 如何调试程序
tasks.json
指示 vscode 如何编译源码,获得生成文件
c_cpp_properties.json
这文件影响 C/C++ 插件的智能提示,不影响编译,可加可不加。
launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++-9 - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/hello",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++-9 生成活动文件",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
request:调试方式,分为launch和attach
program:要调试的程序路径
args:传给调试器的参数
cwd:当前工作目录
MIMode:指示vscode 连接的调试器,lldb 或gdb
stopAtEntry:是否在main 函数入口处停住
preLaunchTask:运行launch.json 要执行的task,与task.json 中的label 对应
task.json
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++-9 生成活动文件",
"command": "/usr/bin/g++-9",
"args": [
"-fdiagnostics-color=always",
"-g",
"${workspaceFolder}/*.cpp",
"-lkuma",
"-lkev",
"-lcrypto",
"-lssl",
"-lpthread",
"-ldl",
"-Bsymbolic",
"-I${workspaceFolder}/include",
"-L${workspaceFolder}/lib",
"-o",
"${workspaceFolder}/hello"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
label:task 的标签,用来区别不同的task
args:传给g++ 编译器的参数列表,${workspaceFolder}/*.cpp 表示工作目录下的所有cpp 文件,vscode 是不会自动添加链接选项的,需要自己在args 里添加。-o 后面跟的是编译生成的目标文件名。
c_cpp_properties.json
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${default}",
"${workspaceFolder}/include",
"${workspaceFolder}/include/libkev"
],
"compilerPath": "/usr/bin/clang",
"cStandard": "c11",
"cppStandard": "c++14",
"intelliSenseMode": "linux-clang-x64"
}
],
"version": 4
}
3、运行测试
运行程序,断点成功命中。
更多选项请参考官方:
Configure Visual Studio Code for Microsoft C++Configure the C++ extension in Visual Studio Code to target Microsoft C++ on Windows.https://code.visualstudio.com/docs/cpp/config-msvc
示例demo
https://download.csdn.net/download/sinat_27720649/29939839?spm=1001.2014.3001.5501http://vscode C/C++



