Deepin(Linux)でVisual Studioコードを使用してC/C++プログラムをデバッグ


最近Linuxを学んで、Deepinをインストールして、自分の過程の中で問題の解決方法を記録します.
文書ディレクトリ
  • 一、VS CODE
  • を取り付ける
  • 二、VS CODEプラグイン
  • をインストールする
  • 三、GCCとGDB
  • を取り付ける
  • 四、Clang
  • を取り付ける
  • 五、配置VS CODE
  • 5.1作業フォルダを作成し、VS CODEで
  • を開きます.
  • 5.2 C++
  • を配置する
  • 5.3 launch.json
  • 5.4 task.json
  • 5.5デバッグ
  • 一、VSコードを取り付ける
    公式サイトから.debフォーマットでVS CODE公式サイトをインストールすることができます.
    また、端末のインストールを通じて、インストール前にパッケージインデックスの更新を推奨することもできます.
    #        
    sudo apt update
    
    #   VS CODE v1.36.1
    sudo apt install code
    

    二、VSコードプラグインのインストール
    次のプラグインのC/C++プラグインは必須です.その他は必要に応じてインストールできます.
  • C/C+(作成者はmicrosoft、最も基礎的なプラグイン)
  • Code Runner(ユーティリティ、コードブロックを選択した後、右クリックで「run coder」を選択して直接コードを実行し、右上隅にショートカットボタンもある)
  • C/C++Clang Command Adapter:静的検出(Lint)
  • を提供
  • Include Autocomplete:ヘッダファイル補完
  • を提供
  • C/C++Snippets:Snippetsすなわち再利用コードブロック
  • Bracket Pair Colorizer:レインボーカッコ
  • GBKtoUTF 8:GBK符号化の文書をUTF 8符号化の
  • に変換する.
    三、GCCとGDBを取り付ける
    端末を通して直接GCCとGDBをインストールする:
    sudo apt install build-essential gdb
    

    次のコマンドを使用して、GCCとGDBが正常にインストールされたかどうか、およびインストールパスを問い合わせることができます.
    whereis g++
    whereis gdb
    

    四、Clangを取り付ける
    端末コマンドで直接Clangをインストールするには:
    sudo apt install clang
    

    五、VSコードの配置
    5.1作業フォルダを作成し、VSコードで開く
    作業フォルダを作成したら、VSコードでそのディレクトリを開きます.あるいは直接VS CODEで作業フォルダを作成します.
    作業フォルダを開くと、作業フォルダadderの下にソースファイルadderを作成するなど、このファイルにソースファイルを作成します.cpp、コードの例は以下の通りです.
    #include 
    using namespace std;
    
    int main()
    {
        int a = 0;
        int b = 0;
        int sum = 0;
        cout << "Please input two nums:" << endl;
        cin >> a >> b;
        sum = a + b;
        cout << "The sum of two nums is: " << sum << endl;
        return 0;
    }
    

    5.2 C++の構成
    VS CODEでF1またはCtrl Shift Pのショートカットキーを使用してコマンドパネルを開き、C/C++と入力し、C/C++:Edit configurationを選択すると、作業フォルダの.vscodeフォルダの下にc_cpp_properties.jsonプロファイルが生成され、内容を以下のように変更できます.
    {
        "configurations": [
            {
                "name": "Linux",
                "includePath": [
                    "${workspaceFolder}/**"
                ],
                "defines": [],
                "compilerPath": "/usr/bin/g++",
                "cStandard": "c11",
                "cppStandard": "c++17",
                "intelliSenseMode": "clang-x64"
            }
        ],
        "version": 4
    }
    

    このうち最も主要なのはincludePathの参照とライブラリのパスで、参照内容に基づいて構成されています.
    5.3 launch.json launch.jsonは主にデバッグ時のロード制御に用いられる.デバッグパネルを開くには、F5または -> メニューを押します.設定ボタンをクリックし、C++(GDB/LLDB)Default Configurationを選択すると、.vscodeフォルダにluanch.jsonファイルが生成され、ファイル内容は以下のように変更できます.
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(gdb) Launch",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}",
                "environment": [],
                "externalConsole": true,
                "MIMode": "gdb",
                "preLaunchTask":"build",
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ]
            }
        ]
    }
    

    ここで、"program"パラメータはデバッグが必要なターゲットファイルであり、出力をコンパイルする.outファイルの位置に設定されるべきである."preLaunchTask"とは、デバッグ前に予め実行されるタスクを指す.
    5.4 task.json task.jsonは構築(コンパイル、リンクなど)タスクである.
    まず、コマンドパネルを開き、Tasks:Configure Task task.json Othersを入力すると、.vscodeフォルダにtask.jsonファイルが生成され、内容が以下のように変更されます.
    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "build",
                "type": "shell",
                "command": "g++",
                "args":[
                    "-g",
                    "${file}",
                    "-std=c++17",
                    "-o",
                    "${fileBasenameNoExtension}.out"
                ]
            }
        ]
    }
    

    ここで、"label"属性の値"build"は、launch.json"preLaunchTask"属性の値と同じである.
    5.5デバッグF5を押すとデバッグが開始され、ブレークポイントを設定してデバッグできます.