切記:(1)工程項目不可以是中文地址
(2)gdb的目錄到\\bin設置到系統的環境變量中
(1)launch.json
{
// 使用 IntelliSense 瞭解相關屬性。
// 懸停以查看現有屬性的描述。
"version": "0.2.0",
"configurations": [{
// 配置 VS Code 調試行爲:
"name": "GDB Debug", // 設置在啓動配置下拉菜單中顯示調試配置的名稱。
"preLaunchTask": "Compile", // 調試會話開始前要運行的任務。
"type": "cppdbg", // 設置要使用的基礎調試器。使用 GDB 或 LLDB 時必須是 cppdbg 。
"request": "launch", // 設置啓動程序還是附加到已經運行的實例。啓動或附加 ( launch | attach ).
"program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 調試器將啓動或附加的可執行文件的完整路徑。
"externalConsole": true, // 設置是否顯示外部控制檯。
"logging": { // 用於確定應該將哪些類型的消息記錄到調試控制檯。
"exceptions": true, // 是否應將異常消息記錄到調試控制檯。默認爲真。
"moduleLoad": false, // 是否應將模塊加載事件記錄到調試控制檯。默認爲真。
"programOutput": true, // 是否應將程序輸出記錄到調試控制檯的可選標誌。默認爲真。
"engineLogging": false, // 是否應將診斷引擎日誌記錄到調試控制檯。默認爲假。
"trace": false, // 是否將診斷適配器命令跟蹤記錄到調試控制檯。默認爲假。
"traceResponse": false // 是否將診斷適配器命令和響應跟蹤記錄到調試控制檯。默認爲假。
},
// 配置目標應用程序:
"args": [], // 設置調試時傳遞給程序的命令行參數。
"cwd": "${workspaceFolder}", // 設置調試器啓動的應用程序的工作目錄。
"environment": [], // 設置調試時添加到程序環境中的環境變量,例如: [ { "name": "squid", "value": "clam" } ]。
// 自定義 GDB 或者 LLDB:
"windows": {
"MIMode": "gdb", // 指定 VS Code 連接的調試器,必須爲 gdb 或者 lldb。
"miDebuggerPath": "D:\\Program Files\\vscode\\MinGW\\bin\\gdb.exe" // 調試器的路徑,修改爲你的安裝路徑
},
"miDebuggerArgs": "", // 傳遞給調試器的附加參數
"stopAtEntry": false, // 設置調試器是否停止在目標的入口(附加時忽略)。默認值爲 false。
"setupCommands": [{ // 執行下面的命令數組以設置 GDB 或 LLDB
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing", // 鼠標懸停查看變量的值,需要啓用 pretty-printing 。
"ignoreFailures": true // 忽略失敗的命令,默認爲 false 。
}]
}]
}
(2)tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [{
"label": "Compile",
"type": "shell", // { shell | process }
// 適用於 Windows 的配置:
"windows": {
"command": "gcc",
"args": [
"-g",
"\"${file}\"",
"-o",
"\"${fileDirname}\\${fileBasenameNoExtension}.exe\""
// 設置編譯後的可執行文件的字符集爲 GB2312:
// "-fexec-charset", "GB2312"
// 直接設置命令行字符集爲 utf-8:
// chcp 65001
]
},
// 定義此任務屬於的執行組:
"group": {
"kind": "build", // { build | test }
"isDefault": true // { true | false }
},
// 定義如何在用戶界面中處理任務輸出:
"presentation": {
// 控制是否顯示運行此任務的面板。默認值爲 "always":
// - always: 總是在此任務執行時顯示終端。
// - never: 不要在此任務執行時顯示終端。
// - silent: 僅在任務沒有關聯問題匹配程序且在執行時發生錯誤時顯示終端
"reveal": "silent",
// 控制面板是否獲取焦點。默認值爲 "false":
"focus": false,
// 控制是否將執行的命令顯示到面板中。默認值爲“true”:
"echo": false,
// 控制是否在任務間共享面板。同一個任務使用相同面板還是每次運行時新創建一個面板:
// - shared: 終端被共享,其他任務運行的輸出被添加到同一個終端。
// - dedicated: 執行同一個任務,則使用同一個終端,執行不同任務,則使用不同終端。
// - new: 任務的每次執行都使用一個新的終端。
"panel": "dedicated"
},
// 使用問題匹配器處理任務輸出:
"problemMatcher": {
// 代碼內問題的所有者爲 cpp 語言服務。
"owner": "cpp",
// 定義應如何解釋問題面板中報告的文件名
"fileLocation": [
"relative",
"${workspaceFolder}"
],
// 在輸出中匹配問題的實際模式。
"pattern": {
// The regular expression.
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
// 第一個匹配組匹配文件的相對文件名:
"file": 1,
// 第二個匹配組匹配問題出現的行:
"line": 2,
// 第三個匹配組匹配問題出現的列:
"column": 3,
// 第四個匹配組匹配問題的嚴重性,如果忽略,所有問題都被捕獲爲錯誤:
"severity": 4,
// 第五個匹配組匹配消息:
"message": 5
}
}
}]
}