# VsCode 配置C++調試運行


VsCode 配置C++調試運行

  • 打開命令面板快捷鍵為F1,軟件上寫的Ctrl+Shift+P似乎沒用

先安裝插件使得可以運行

  • 先自行在vsc擴展中搜索C++安裝C/C++插件
  • 再參考知乎專欄中安裝code-runner插件使得可以運行,參考這位知乎博客的插件參數配置,代碼使用同樣是這個人的知乎回答,他的知乎回答中的代碼加上了必備的參數(注意.c和.cpp文件無法使用同一個配置)

一些編譯參數比如說,添加編譯警告,使得可以支持C++14等等,在這一步中進行,具體操作這位知乎博主有說

配置斷點調試環境

  • 參考這位CSDN博主配置存放代碼文件夾下的.vscode中的launch.jsontasks.json

  • 需要注意的是,在VSC中調試需要在打開的文件夾中進行(注意!是用VSC打開文件夾!!,單獨打開一個單獨的cpp是沒有下面的幾個配置文件出現的!!也就是說,這個cpp要在一個文件夾里!不像DevCpp和C-Free可以直接調試一個單獨的cpp!!)

  • VSC不支持路徑中含中文的文件調試

  • 條件斷點的使用

  • 特別注意:

  • Vsc打開其他文件時,中文顯示亂碼,一勞永逸解決方案:打開Vsc,文件-首選項-設置-搜素files.autoGuessEncoding": flase改為files.autoGuessEncoding": true

  • Vsc終端打印出現中文亂碼,首先我們應該明白,Vsc的終端調用的是windows的cmd或者windows powershell,到底是哪個可以通過
    先新建一個終端,保證有兩個終端以上的時候就可以看到選擇默認的shell這個選項,里面可以選擇是調用cmd還是powershell,通過chcp命令可以查到這兩個終端的默認編碼都是936(簡體中文默認的GBK編碼),可以通過命令chcp 65001(65001 UTF-8代碼頁)臨時將編碼改成UTF-8。不建議直接修改cmd和powershell的默認編碼,這會導致國內有些使用GBK編碼的軟件出現亂碼或者不能顯示或者莫名其妙的Bug,比如有道詞典。詳情查看知乎馬甲回答下的評論,等一些老軟件全部更新成現代Unicoded軟件的時候就可以更改windows的編碼了,具體方法網上很多,這里不再累贅。

  • 最后配上一份我本地的配置代碼

launch.json:
{  
    "version": "0.2.0",  
    "configurations": [  
        {  
            "name": "(gdb) Launch", // 配置名稱,將會在啟動配置的下拉菜單中顯示  
            "type": "cppdbg",       // 配置類型,這里只能為cppdbg  
            "request": "launch",    // 請求配置類型,可以為launch(啟動)或attach(附加)  
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",// 將要進行調試的程序的路徑  
            "args": [],             // 程序調試時傳遞給程序的命令行參數,一般設為空即可  
            "stopAtEntry": false,   // 設為true時程序將暫停在程序入口處,一般設置為false  
            "cwd": "${workspaceFolder}", // 調試程序時的工作目錄,一般為${workspaceFolder}即代碼所在目錄  
            "environment": [],  
            "externalConsole": true, // 調試時是否顯示控制台窗口,一般設置為true顯示控制台  
            "MIMode": "gdb",  
            "miDebuggerPath": "C:/MinGW/bin/gdb.exe", // miDebugger的路徑,注意這里要與MinGw的路徑對應  
            "preLaunchTask": "g++", // 調試會話開始前執行的任務,一般為編譯程序,c++為g++, c為gcc  
            "setupCommands": [  
                {   
		    "description": "Enable pretty-printing for gdb",  
                    "text": "-enable-pretty-printing",  
                    "ignoreFailures": true  
                }  
            ]  
        }  
    ]  
}


tasks.json
{
// {
// // 有關 tasks.json 格式的文檔,請參見
//     // https://go.microsoft.com/fwlink/?LinkId=733558
//     "version": "2.0.0",
//     "tasks": [
//         {
//             "type": "shell",
//             "label": "g++",
//             "command": "C:\\MinGW\\bin\\g++.exe",
//             "args": [
//                 "-g",
//                 "${file}",
//                 "-o",
//                 "${fileDirname}\\${fileBasenameNoExtension}.exe"
//             ],
//             "options": {
//                 "cwd": "C:\\MinGW\\bin"
//             },
//             "problemMatcher": [
//                 "$gcc"
//             ],
//             "group": {
//                 "kind": "build",
//                 "isDefault": true
//             }
//         }
//     ],
// }

{
    "version": "2.0.0",
    "command": "g++",
    "args": ["-g","${file}","-o","${fileBasenameNoExtension}.exe"],    // 編譯命令參數
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceFolder}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}
  • 本地用戶設置代碼
settings.json
{
    "files.autoSaveDelay": 500,
    "editor.fontSize": 18,
    "code-runner.clearPreviousOutput": true,
    "code-runner.ignoreSelection": true,
    "code-runner.preserveFocus": false,
    "code-runner.runInTerminal": true,
    "code-runner.respectShebang": false,
    "code-runner.saveAllFilesBeforeRun": true,
    "code-runner.saveFileBeforeRun": true,
    "code-runner.executorMap": {
        "c": "cd $dirWithoutTrailingSlash && gcc $fileName -o $fileNameWithoutExt.exe -std=c11 -Wall -lm && ./$fileNameWithoutExt.exe",
        //"c": "cd $dir && gcc -std=c11 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        //"cpp": "cd $dir && g++ -std=c++1s4 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "cpp": "cd $dirWithoutTrailingSlash && g++ $fileName -o $fileNameWithoutExt.exe -std=c++11 -Wall -lm && ./$fileNameWithoutExt.exe",
        //"c": "cd $dir && gcc -std=c11 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
    },
    "files.autoSave": "afterDelay",
    "files.autoGuessEncoding": true,
    "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM