
變數的跟蹤出不來,而且沒辦法進行單步除錯等
下面是我的launch.json和tasks.json
// https://github.com/Microsoft/vscode-cpptools/blob/master/launch.md
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名稱,將會在啟動配置的下拉選單中顯示
"type": "cppdbg", // 配置型別,cppdbg對應cpptools提供的除錯功能;可以認為此處只能是cppdbg
"request": "launch", // 請求配置型別,可以為launch(啟動)或attach(附加)
"program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 將要進行除錯的程式的路徑
"args": [], // 程式除錯時傳遞給程式的命令列引數,一般設為空即可
"stopAtEntry": false, // 設為true時程式將暫停在程式入口處,相當于在main上打斷點
"cwd": "${workspaceFolder}", // 除錯程式時的作業目錄,此為作業區檔案夾;改成${fileDirname}可變為檔案所在目錄
"environment": [], // 環境變數
"externalConsole": false, // 為true時使用單獨的cmd視窗,與其它IDE一致;18年10月后設為false可呼叫VSC內置終端
"internalConsoleOptions": "neverOpen", // 如果不設為neverOpen,除錯時會跳到“除錯控制臺”選項卡,你應該不需要對gdb手動輸命令吧?
"MIMode": "gdb", // 指定連接的除錯器,可以為gdb或lldb。但我沒試過lldb
"miDebuggerPath": "gdb.exe", // 除錯器路徑,Windows下后綴不能省略,Linux下則不要
"setupCommands": [
{ // 模板自帶,好像可以更好地顯示STL容器的內容,具體作用自行Google
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": false
}
],
"preLaunchTask": "Compile" // 除錯會話開始前執行的任務,一般為編譯程式。與tasks.json的label相對應
}]
}
// https://code.visualstudio.com/docs/editor/tasks
{
"version": "2.0.0",
"tasks": [{
"label": "Compile", // 任務名稱,與launch.json的preLaunchTask相對應
"command": "g++", // 要使用的編譯器,C++用g++
"args": [
"${file}",
"-o", // 指定輸出檔案名,不加該引數則默認輸出a.exe,Linux下默認a.out
"${fileDirname}/${fileBasenameNoExtension}.exe",
"-g", // 生成和除錯有關的資訊
"-Wall", // 開啟額外警告
"-static-libgcc", // 靜態鏈接libgcc,一般都會加上
"-fexec-charset=GBK", // 生成的程式使用GBK編碼,不加這一潭訓導致Win下輸出中文亂碼
// "-std=c11", // C++最新標準為c++17,或根據自己的需要進行修改
], // 編譯的命令,其實相當于VSC幫你在終端中輸了這些東西
"type": "process", // process是vsc把預定義變數和轉義決議后直接全部傳給command;shell相當于先打開shell再輸入命令,所以args還會經過shell再決議一遍
"group": {
"kind": "build",
"isDefault": true // 不為true時ctrl shift B就要手動選擇了
},
"presentation": {
"echo": true,
"reveal": "always", // 執行任務時是否跳轉到終端面板,可以為always,silent,never。具體參見VSC的檔案
"focus": false, // 設為true后可以使執行task時焦點聚集在終端,但對編譯C/C++來說,設為true沒有意義
"panel": "shared" // 不同的檔案的編譯資訊共享一個終端面板
},
// "problemMatcher":"$gcc" // 此選項可以捕捉編譯時終端里的報錯資訊;但因為有Lint,再開這個可能有雙重報錯
}]
}
不知大佬們是否可以幫助一下
uj5u.com熱心網友回復:
這個i沒初始值?
uj5u.com熱心網友回復:
應該不是這個問題。。uj5u.com熱心網友回復:
試試:https://www.cnblogs.com/qingnvsue/p/12977948.html轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/265126.html
標籤:其它技術問題
