小編給大家分享一下vscode調試c程序失敗怎么辦,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)長期為數(shù)千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為向陽企業(yè)提供專業(yè)的成都網(wǎng)站建設、網(wǎng)站制作,向陽網(wǎng)站改版等技術服務。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
問題:
執(zhí)行調試時,出現(xiàn)問題:
無法在".vscode"文件夾(Cannot read property 'name' of undefined) 內創(chuàng)建"launch.json"文件
解決方法:
一、創(chuàng)建文件夾
點擊下圖中紅框處,創(chuàng)建文件夾,命名為“.vscode"
二、創(chuàng)建launch.json
在.vscode文件夾中,創(chuàng)建launch.json文件,并將下面的代碼復制進去,其中,miDubuggerPath后的路徑為C++編輯器的安裝路徑
{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", // 配置名稱,將會在啟動配置的下拉菜單中顯示 "type": "cppdbg", // 配置類型,cppdbg對應cpptools提供的調試功能;可以認為此處只能是cppdbg "request": "launch", // 請求配置類型,可以為launch(啟動)或attach(附加) "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 將要進行調試的程序的路徑 "args": [], // 程序調試時傳遞給程序的命令行參數(shù),一般設為空即可 "stopAtEntry": false, // 設為true時程序將暫停在程序入口處,相當于在main上打斷點 "cwd": "${workspaceFolder}", // 調試程序時的工作目錄,此為工作區(qū)文件夾;改成${fileDirname}可變?yōu)槲募谀夸? "environment": [], // 環(huán)境變量 "externalConsole": false, // 為true時使用單獨的cmd窗口,與其它IDE一致;18年10月后設為false可調用VSC內置終端 "internalConsoleOptions": "neverOpen", // 如果不設為neverOpen,調試時會跳到“調試控制臺”選項卡,你應該不需要對gdb手動輸命令吧? "MIMode": "gdb", // 指定連接的調試器,可以為gdb或lldb。但我沒試過lldb "miDebuggerPath": "D:\\mingw64\\bin\\gdb.exe", // 調試器路徑,Windows下后綴不能省略,Linux下則不要 "setupCommands": [ { // 模板自帶,好像可以更好地顯示STL容器的內容,具體作用自行Google "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": false } ], "preLaunchTask": "Compile" // 調試會話開始前執(zhí)行的任務,一般為編譯程序。與tasks.json的label相對應 } ] }
三、創(chuàng)建tasks.json
在.vscode文件中,新建tasks.json文件,編輯代碼
{ "version": "2.0.0", "tasks": [ { "label": "Compile", // 任務名稱,與launch.json的preLaunchTask相對應 "command": "g++", // 要使用的編譯器,C++用clang++;如果編譯失敗,改成gcc或g++試試,還有問題那就是你自己的代碼有錯誤 "args": [ "${file}", "-o", // 指定輸出文件名,不加該參數(shù)則默認輸出a.exe,Linux下默認a.out "${fileDirname}/${fileBasenameNoExtension}.exe", "-g", // 生成和調試有關的信息 "-Wall", // 開啟額外警告 "-static-libgcc", // 靜態(tài)鏈接libgcc,一般都會加上 "-std=c++11", // C++最新標準為c++17,或根據(jù)自己的需要進行修改 ], // 編譯命令參數(shù) "type": "process", // process是vsc把預定義變量和轉義解析后直接全部傳給command;shell相當于先打開shell再輸入命令,所以args還會經(jīng)過shell再解析一遍 "group": { "kind": "build", "isDefault": true // 不為true時ctrl shift B就要手動選擇了 }, "presentation": { "echo": true, "reveal": "always", // 執(zhí)行任務時是否跳轉到終端面板,可以為always,silent,never。具體參見VSC的文檔 "focus": false, // 設為true后可以使執(zhí)行task時焦點聚集在終端,但對編譯C/C++來說,設為true沒有意義 "panel": "shared" // 不同的文件的編譯信息共享一個終端面板 }, // "problemMatcher":"$gcc" // 此選項可以捕捉編譯時終端里的報錯信息;本文用的是clang,開了可能會出現(xiàn)雙重報錯信息;只用cpptools可以考慮啟用 } ] }
四、此時點擊調試按鈕,可以看到出現(xiàn)可以進行調試的選項
看完了這篇文章,相信你對“vscode調試c程序失敗怎么辦”有了一定的了解,如果想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!