1.c_cpp_properties.json代碼參考
c_cpp_properties.json是主要用來設(shè)置包含頭文件的路徑設(shè)置删咱,C/C++的版號(hào)等等誓军,我的代碼附上芳杏,一般情況下用默認(rèn)生成的就行了瘦穆,路徑改一下即可
{
"configurations": [
{
"name": "Linux", //環(huán)境名
"includePath": [
"${workspaceFolder}/**" //指定頭文件路徑,這里指定的是當(dāng)前工作目錄栓撞,如有需要在后面添加遍膜,添加方式是加入 "/to/path" 格式的路徑
],
"defines": [],
"compilerPath": "C:\\ljy\\MingGW\\mingw64\\bin\\g++.exe", //編譯器的路徑碗硬,可根據(jù)自己的安裝情況進(jìn)行設(shè)置
"cStandard": "c11",
"cppStandard": "c++17", //設(shè)置使用的 C/C++ 標(biāo)準(zhǔn)
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
2.關(guān)于無法調(diào)試的問題
這邊提示了Module containing this breakpoint has not yet loaded or the breakpoint address could not be obtained的提示(包含此斷點(diǎn)的模塊尚未裝入或無法獲得斷點(diǎn)地址)
后來發(fā)現(xiàn)問題是我之前為了不讓命令行停止,就干脆直接用命令行配置參數(shù)了瓢颅,而launch.json文件中的’program‘調(diào)試的路徑是命令行的路徑恩尾,所以他無法調(diào)試
問題的解決辦法就是把program參數(shù)改成對(duì)應(yīng)文件就可以了,隨后設(shè)置斷點(diǎn),按f5完美調(diào)試運(yùn)行~~
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 調(diào)試C",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}\\.exe\\${fileBasenameNoExtension}.exe", //可執(zhí)行文件的完整路徑挽懦,文件名與 build.json 中生成的可執(zhí)行文件名保持一致
"args": [],
"stopAtEntry": false, //是否在 main 函數(shù)處暫定執(zhí)行
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false, //在打開外部終端執(zhí)行程序,而不是在 VSCode 的控制臺(tái)中運(yùn)行
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe 生成活動(dòng)文件" // 調(diào)試前執(zhí)行的任務(wù)翰意,一般為編譯程序。與tasks.json的label相對(duì)應(yīng)
}
]
}
3.使用命令行時(shí)運(yùn)行完閃退的問題
第一種方法:System函數(shù)
system("pause");
在程序結(jié)尾時(shí)添加這句話就可以解決問題了信柿。注意在return前面寫即可讓程序暫停下來冀偶,對(duì)于此函數(shù)講解參考這位大佬博客的地址
第二種方法:設(shè)置斷點(diǎn)
在程序末尾加這個(gè)也可以讓程序在某一個(gè)斷點(diǎn)處停下來,文件沒有跑完渔嚷,就不會(huì)閃退了进鸠。
第三種方法:用自帶的Vscode環(huán)境運(yùn)行
這個(gè)要因人而異,修改方法很簡(jiǎn)單形病,在launch.json配置文件中的
"externalConsole": true,
修改成這樣即可
"externalConsole": false,