- 在CMakeLists.txt文件頭部添加
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") #需要調(diào)試請打開此選項(xiàng)
然后使用添加指令后的CMakeLists.txt重新編譯程序
-
點(diǎn)擊蟲子圖標(biāo)
點(diǎn)擊設(shè)置圖標(biāo)
如果已經(jīng)創(chuàng)建launch.json
文件會自動打開json文件囚聚,如果沒有創(chuàng)建會自動新建一個(gè)空白launch.json
文件
空白內(nèi)容如下:
{
// 使用 IntelliSense 了解相關(guān)屬性搪桂。
// 懸停以查看現(xiàn)有屬性的描述谅猾。
// 欲了解更多信息映九,請?jiān)L問: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": []
}
- 填充用以調(diào)試的
launch.json
填充內(nèi)容如下:
{
// 使用 IntelliSense 了解相關(guān)屬性。
// 懸停以查看現(xiàn)有屬性的描述沃暗。
// 欲了解更多信息月洛,請?jiān)L問: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 啟動",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/main.exe", //待調(diào)試的可執(zhí)行文件路徑
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:/MinGW/bin/gdb.exe", //用以調(diào)試的gdb路徑
"setupCommands": [
{
"description": "為 gdb 啟用整齊打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
//"preLaunchTask": "C/C++: g++.exe build active file"
}
]
}
對于新項(xiàng)目,新的編譯環(huán)境孽锥,無腦修改program
, miDebuggerPath
對應(yīng)值即可
此外在args
中添加main函數(shù)的輸入?yún)?shù)嚼黔, 每個(gè)參數(shù)使用""
包圍,使用,
做分隔
- 如何調(diào)試
- 先使用CMakeLists.txt編譯好可執(zhí)行程序
-
在要調(diào)試的代碼中打斷點(diǎn)
- 點(diǎn)擊
(gdb)啟動
程序會自動運(yùn)行至斷點(diǎn)處 - 調(diào)試方法
繼續(xù) F5:啟動調(diào)試惜辑。若已經(jīng)啟動唬涧,則會運(yùn)行到下一個(gè)斷點(diǎn)停住
逐過程 F10:單步跳過。即如果遇到函數(shù)盛撑,則不會進(jìn)到這個(gè)函數(shù)里面
單步調(diào)試 F11:單步執(zhí)行碎节。如果遇到函數(shù),會進(jìn)到這個(gè)函數(shù)里面