看過一些教程,linux下沒有有關(guān)對整個(gè)工作區(qū)的任何c/c++文件的通用配置。這個(gè)是通用的,希望能為大家節(jié)省配置時(shí)間,當(dāng)然,最終你們還是會(huì)像我這樣,選擇重新看官方文檔。
?gdb + clang++? ?有坑,調(diào)試時(shí)無法顯示stl容器內(nèi)容,絕對不要這么搭配、、
最佳搭配是:
方案1:gdb +?gcc/g++?
或者
方案2:lldb + clang/clang++
上面2選1,自己安裝gcc/g++ ,gdb 或lldb ,clang/clang++
插件自行安裝
方案1就不需要codelldb這插件

直接放配置文件:
看自己選什么方案,可以刪去不需要的搭配
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": "clang++ lldb",
? ? ? ? ? ? "type": "lldb",
? ? ? ? ? ? "request": "launch",
? ? ? ? ? ? "program": "${fileDirname}/${fileBasenameNoExtension}.o",
? ? ? ? ? ? "args": [],
? ? ? ? ? ? "cwd": "${workspaceFolder}",
? ? ? ? ? ? "preLaunchTask": "clang++ build active file",
? ? ? ? ? ? "terminal": "integrated"
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? "name": "clang lldb", // 配置名稱,將會(huì)在啟動(dòng)配置的下拉菜單中顯示
? ? ? ? ? ? "type": "lldb",
? ? ? ? ? ? "request": "launch",
? ? ? ? ? ? "program": "${fileDirname}/${fileBasenameNoExtension}.o",
? ? ? ? ? ? "args": [],
? ? ? ? ? ? "cwd": "${workspaceFolder}",
? ? ? ? ? ? "preLaunchTask": "clang++ build active file",
? ? ? ? ? ? "terminal": "integrated",
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? "name": "gcc gdb", // 配置名稱,將會(huì)在啟動(dòng)配置的下拉菜單中顯示
? ? ? ? ? ? "type": "cppdbg", // 配置類型,這里只能為cppdbg
? ? ? ? ? ? "request": "launch", // 請求配置類型,可以為launch(啟動(dòng))或attach(附加)
? ? ? ? ? ? "program": "${fileDirname}/${fileBasenameNoExtension}.o",
? ? ? ? ? ? "args": [], // 程序調(diào)試時(shí)傳遞給程序的命令行參數(shù),一般設(shè)為空即可
? ? ? ? ? ? "stopAtEntry": false, // 設(shè)為true時(shí)程序?qū)和T诔绦蛉肟谔?,我一般設(shè)置為true
? ? ? ? ? ? "cwd": "${workspaceFolder}", // 調(diào)試程序時(shí)的工作目錄
? ? ? ? ? ? "environment": [], // 環(huán)境變量
? ? ? ? ? ? "externalConsole": false, // 調(diào)試時(shí)是否顯示控制臺(tái)窗口,一般設(shè)置為true顯示控制臺(tái)
? ? ? ? ? ? "internalConsoleOptions": "neverOpen", // 如果不設(shè)為neverOpen,調(diào)試時(shí)會(huì)跳到“調(diào)試控制臺(tái)”選項(xiàng)卡,你應(yīng)該不需要對gdb手動(dòng)輸命令吧?
? ? ? ? ? ? "MIMode": "gdb", // 指定連接的調(diào)試器,可以為gdb或lldb。但我沒試過lldb
? ? ? ? ? ? "miDebuggerPath": "/usr/bin/gdb", // 調(diào)試器路徑,Windows下后綴不能省略,Linux下則不要
? ? ? ? ? ? "setupCommands": [ // 用處未知,模板如此
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "description": "Enable pretty-printing for gdb",
? ? ? ? ? ? ? ? ? ? "text": "-enable-pretty-printing",
? ? ? ? ? ? ? ? ? ? "ignoreFailures": false
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ],
? ? ? ? ? ? "preLaunchTask": "gcc build active file" // 調(diào)試會(huì)話開始前執(zhí)行的任務(wù),一般為編譯程序。與tasks.json的label相對應(yīng)
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? "name": "g++ gdb", // 配置名稱,將會(huì)在啟動(dòng)配置的下拉菜單中顯示
? ? ? ? ? ? "type": "cppdbg", // 配置類型,這里只能為cppdbg
? ? ? ? ? ? "request": "launch", // 請求配置類型,可以為launch(啟動(dòng))或attach(附加)
? ? ? ? ? ? "program": "${fileDirname}/${fileBasenameNoExtension}.o",
? ? ? ? ? ? "args": [], // 程序調(diào)試時(shí)傳遞給程序的命令行參數(shù),一般設(shè)為空即可
? ? ? ? ? ? "stopAtEntry": false, // 設(shè)為true時(shí)程序?qū)和T诔绦蛉肟谔?,我一般設(shè)置為true
? ? ? ? ? ? "cwd": "${workspaceFolder}", // 調(diào)試程序時(shí)的工作目錄
? ? ? ? ? ? "environment": [], // 環(huán)境變量
? ? ? ? ? ? "externalConsole": false, // 調(diào)試時(shí)是否顯示控制臺(tái)窗口,一般設(shè)置為true顯示控制臺(tái)
? ? ? ? ? ? "internalConsoleOptions": "neverOpen", // 如果不設(shè)為neverOpen,調(diào)試時(shí)會(huì)跳到“調(diào)試控制臺(tái)”選項(xiàng)卡,你應(yīng)該不需要對gdb手動(dòng)輸命令吧?
? ? ? ? ? ? "MIMode": "gdb", // 指定連接的調(diào)試器,可以為gdb或lldb。但我沒試過lldb
? ? ? ? ? ? "miDebuggerPath": "/usr/bin/gdb", // 調(diào)試器路徑,Windows下后綴不能省略,Linux下則不要
? ? ? ? ? ? "setupCommands": [ // 用處未知,模板如此
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "description": "Enable pretty-printing for gdb",
? ? ? ? ? ? ? ? ? ? "text": "-enable-pretty-printing",
? ? ? ? ? ? ? ? ? ? "ignoreFailures": false
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ],
? ? ? ? ? ? "preLaunchTask": "g++ build active file" // 調(diào)試會(huì)話開始前執(zhí)行的任務(wù),一般為編譯程序。與tasks.json的label相對應(yīng)
? ? ? ? }
? ? ]
}
tasks.json
{
? ? // See https://go.microsoft.com/fwlink/?LinkId=733558
? ? // for the documentation about the tasks.json format
? ? "version": "2.0.0",
? ? "tasks": [
? ? ? ? {
? ? ? ? ? ? "type": "shell",
? ? ? ? ? ? "label": "clang++ build active file",
? ? ? ? ? ? "command": "/usr/bin/clang++",
? ? ? ? ? ? "args": [
? ? ? ? ? ? ? ? "-g",
? ? ? ? ? ? ? ? "${file}",
? ? ? ? ? ? ? ? "-Wall",
? ? ? ? ? ? ? ? "-o",
? ? ? ? ? ? ? ? "${fileDirname}/${fileBasenameNoExtension}.o"
? ? ? ? ? ? ],
? ? ? ? ? ? "options": {
? ? ? ? ? ? ? ? "cwd": "/usr/bin"
? ? ? ? ? ? },
? ? ? ? ? ? "group": {
? ? ? ? ? ? ? ? "kind": "build",
? ? ? ? ? ? ? ? "isDefault": true
? ? ? ? ? ? },
? ? ? ? ? ? "presentation": {
? ? ? ? ? ? ? ? "echo": true,
? ? ? ? ? ? ? ? "reveal": "always",
? ? ? ? ? ? ? ? "focus": false,
? ? ? ? ? ? ? ? "panel": "shared"
? ? ? ? ? ? },
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? "type": "shell",
? ? ? ? ? ? "label": "clang build active file",
? ? ? ? ? ? "command": "/usr/bin/clang",
? ? ? ? ? ? "args": [
? ? ? ? ? ? ? ? "${file}",
? ? ? ? ? ? ? ? "-g",
? ? ? ? ? ? ? ? "-Wall",
? ? ? ? ? ? ? ? "-o",
? ? ? ? ? ? ? ? "${fileDirname}/${fileBasenameNoExtension}.o",
? ? ? ? ? ? ],
? ? ? ? ? ? "options": {
? ? ? ? ? ? ? ? "cwd": "/usr/bin"
? ? ? ? ? ? },
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? "type": "shell",
? ? ? ? ? ? "label": "g++ build active file",
? ? ? ? ? ? "command": "/usr/bin/g++",
? ? ? ? ? ? "args": [
? ? ? ? ? ? ? ? "${file}",
? ? ? ? ? ? ? ? "-g",
? ? ? ? ? ? ? ? "-Wall",
? ? ? ? ? ? ? ? "-o",
? ? ? ? ? ? ? ? "${fileDirname}/${fileBasenameNoExtension}.o"
? ? ? ? ? ? ],
? ? ? ? ? ? "options": {
? ? ? ? ? ? ? ? "cwd": "/usr/bin"
? ? ? ? ? ? },
? ? ? ? ? ? "group": {
? ? ? ? ? ? ? ? "kind": "build",
? ? ? ? ? ? ? ? "isDefault": true
? ? ? ? ? ? },
? ? ? ? ? ? "presentation": {
? ? ? ? ? ? ? ? "echo": true,
? ? ? ? ? ? ? ? "reveal": "always",
? ? ? ? ? ? ? ? "focus": false,
? ? ? ? ? ? ? ? "panel": "shared"
? ? ? ? ? ? },
? ? ? ? ? ? "problemMatcher": [
? ? ? ? ? ? ? ? "$gcc"
? ? ? ? ? ? ] // 如果你不使用clang,去掉前面的注釋符
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? "type": "shell",
? ? ? ? ? ? "label": "gcc build active file",
? ? ? ? ? ? "command": "/usr/bin/gcc",
? ? ? ? ? ? "args": [
? ? ? ? ? ? ? ? "${file}",
? ? ? ? ? ? ? ? "-g",
? ? ? ? ? ? ? ? "-Wall",
? ? ? ? ? ? ? ? "-o",
? ? ? ? ? ? ? ? "${fileDirname}/${fileBasenameNoExtension}.o",
? ? ? ? ? ? ],
? ? ? ? ? ? "options": {
? ? ? ? ? ? ? ? "cwd": "/usr/bin"
? ? ? ? ? ? },
? ? ? ? ? ? "problemMatcher": [
? ? ? ? ? ? ? ? "$gcc"
? ? ? ? ? ? ] // 如果你不使用clang,去掉前面的注釋符
? ? ? ? }
? ? ]
}