MAC+VS Code+C/C++調試配置


原地址

VS Code C/C++ 環境配置

添加工作區文件夾

雖然代碼能力非常弱,但是環境還是要配好的嘛。C/C++插件 安裝完成之后,首先需要將相應的文件夾添加到VS Code對應的工作區,便於后續代碼調試,如圖所示:

Say Hello world

然后,在文本編輯區新建文本,編寫一段簡單的代碼,保存為two_sum.cpp至工作區文件夾中,代碼如下,vscode操作如圖所示。其中,我工作區文件夾名稱是vscode_c,然后因為Code Runner的功勞,此時只需要點右上角的運行按鈕,即可運行程序啦。

#include<iostream>
using namespace std;

int main()
{
    int result;
    int a = 2;
    int b = 3;
    result = a + b;
    cout << result<< endl;
    return 0;
}

關於三個配置文件--Debug

接下來就是愉快的Debug時間啦,我主要就是在配置這幾個文件的時候花了不少時間。因為自己性子急,又總想着網上肯定有現成的配置文件,只要復制一下就好,結果呢,網上的資料質量參差不齊,幾乎全都沒有用,還有很多就是直接貼圖,什么都不說,哎呦喂,我這急脾氣加暴脾氣呀,一下子全都噴涌而出(心塞),逼着我自己好好看了看官方文檔里面的一些說明,這次總算是把一些基本設置參數弄得七七八八了。

c_cpp_properties.json

首先快捷鍵shift+command+p 打開C/Cpp: Edit configurations,其會自動生成c_cpp_properties.json,該文件主要是方便添加其他路徑的頭文件以及一些代碼定位功能。但是小白如我現在還用不到這些功能,所以該文件自動生成之后,如果只是簡單的使用,暫時不需要修改。這個文件是長這個樣子滴:

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "macFrameworkPath": [
                "/System/Library/Frameworks",
                "/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/clang",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

參數的簡單說明

  • “includePath”:后期需要添加的額外頭文件路徑
  • “compilerPath”: 編譯器所在的文件路徑
    更加詳細的說明可以參考C/C++ for VS Code

tasks.json

這個文件的作用是編譯C/C++源碼。首先快捷鍵shift+command+p 打開Tasks: Configure Tasks,選擇 Create tasks.json file from templates,此時會蹦出一個下拉列表,在下拉列表中選擇Others,這個時候tasks.json文件就會自動生成啦。這個配置文件是長這個樣子的:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build two_sum.cpp",
            "type": "shell",
            "command": "g++",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}.out",
                "-g"
            ],            
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

參數的簡單說明

  • “label”:任務的名稱

  • “type”:任務的類型,有兩種(shell/process),shell的意思相當於先打開shell再輸入命令,process是直接運行命令

  • “command”:實際執行的命令

  • “args”:在這里可以設置一些需要的參數,比如說這里我設置的四個參數中,

  • “-o”,表示指定輸出文件名,如果不加該參數則默認Windows下輸出a.exe,Linux/MAC下默認a.out,緊接着的一行即為指定的輸出文件名

  • “-g”,C/C++調試必備參數

    更加詳細的解釋見VS Code官方文檔關於tasks.json的說明
    官方文檔中還給出了GitHub中的tasks.json模版

launch.json

該文件的作用是為了可以讓我們愉快地調試代碼的啦。首先找到蟲子的圖標,然后點擊設置的按鈕,在蹦出來的選項中選擇C++ (GDB/LLDB),就像圖片中這個樣子:

然后,跟tasks.json相對應,簡單修改后如下:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "lldb"
        }
    ]
}

參數的簡單說明

  • “name”:配置名稱,將會在啟動配置的下拉菜單中顯示

  • “type”:配置類型

  • “request”:請求配置類型,可以為launch(啟動)或attach(附加)

  • “program”:進行調試的程序的路徑

  • “stopAtEntry”:若設置為true時程序將暫停在程序入口處

  • “cwd”:當前調試所在目錄

  • “externalConsole”:調試時是否顯示控制台窗口,設置為true即是顯示控制台

    更加詳細的解釋見Github中關於launch.json文件的說明

上面的步驟全部完成之后,首先切換到two_sum.cpp,快捷鍵command+shift+b對源文件進行編譯,編譯成功之后,按下F5,我們便可以愉快地調試啦。成功調試的圖如下:


免責聲明!

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



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