2019年1月12日土曜日

Visual Studio Code で C++ と Python をデバッグする

こんにちは、ふじかーです。

明けましておめでとうございます。本年もよろしくお願いします。

さて、こないだ下記の記事で VS Code でC言語デバッグできるようにしたんですが
Visual Studio Code でC言語をステップ実行

現場で C++ を扱う可能性が出てきたので、
そちらも VS Code で動かせるようにしたいと思います。

あと、ついでに python も動かせるようにしたいと思います。

C++_デバッグ環境作成の流れ


    基本的に前回の C言語環境 作成時と同じ流れです。
    ファイル名や設定が少し異なるくらい。
    → ここまでは C言語環境 作成時と全く同じ手順ですので
      前回の記事にリンクしています。実施済みの場合とばしてください。


    C++_作業場所、test.cppの準備


    C言語の時と同じく、適当にHelloWorldソースを用意します。

    #include <iostream>
    
    int main() {
        std::cout << "Hello, world!" << std::endl;
        return 0;
    }
    

    これを作業フォルダに保存しておきます。ここでは D:\test\cpp\test.cpp としました。

    またこの作業フォルダを、VS Code のメニューから開いておきましょう。
    ・メニュー → フォルダーを開く → D:\test\cpp



    C++_デバッグの為の設定

    • ビルドタスクの設定(tasks.json)
    修正したソースコードをビルドするための設定を行います。
    ほぼC言語の時と同じで、コマンド行が下記のように異なるだけなので
        C言語・・・ "gcc -g -O0 -o a.exe test.c"
        C++   ・・・ "g++ -g -O0 -o a.exe test.cpp"

    C言語の時の tasks.json があるならファイルコピペして
    コマンド行だけ編集してもOKです。

     ・フォルダーを開いている状態で Ctrl+Shift+B
     ・「実行するビルドタスクがありません。ビルドタスクを構成する」というメッセージが出るのでクリック
     ・「テンプレートからtask.jsonを作成する」というメッセージが出るのでクリック
     ・表示された候補の中から「Others 任意の外部コマンドを実行する例」を選択
      → 作業フォルダ内に「.vscode/tasks.json」ファイルが自動生成され、画面に表示される




     ・表示された task.json の
    "command": "echo Hello"
    
      を削除して、下記を挿入
    "command": "g++ -g -O0 -o a.exe test.cpp",
    "problemMatcher": "$tsc", 
    "group": {
        "kind": "build",
        "isDefault": true
    }
    
     ・Ctrl+S で保存しておく


    • デバッグ環境の設定(launch.json)
     デバッグに必要な設定を行います。こちらはC言語の時と完全に同じなので、
    C言語の時の launch.json があるならファイルコピペでもOKです。

     ・画面左のデバッグアイコンを押下
     ・デバッグの開始アイコン(再生マーク)を押下
     ・表示された候補の中から「C++(GDB/LLDB)」を選択
      → 作業フォルダ内に「.vscode/launch.json」ファイルが自動生成され、画面に表示される




     ・表示された launch.json の
    "program": "enter program name, for example ${workspaceFolder}/a.exe",
    "miDebuggerPath": "/path/to/gdb",
    
      を削除して、下記を挿入
    "program": "${workspaceRoot}/a.exe",
    "miDebuggerPath": "c:\\mingw\\bin\\gdb.exe",
    
     ・Ctrl+S で保存しておく



    C++_デバッグ開始!


     ・試したいコードをmain関数に記載し、リビルドは Ctrl+Shift+B
     ・ブレークポイントをセットしてF5でデバッグ開始、F10でステップ実行



    python_デバッグ環境作成の流れ


      お次は python です。
        →  ここも同じ手順ですので、実施済みの場合とばしてください。



        python3のインストール


        パソコンにまだpythonを入れていない場合、
        下記サイトに従ってインストールしておきます。








        python_拡張機能をインストール


        C言語の時と同じく、python開発用の拡張機能もインストールしておきます。
         ・画面左の 拡張機能(Extensions)ボタン を押して「python」で検索 → インストール → VS Codeを再起動






        python_作業場所、test.pyの準備


        C言語の時と同じく、適当にHelloWorldソースを用意します。

        a = "Hello World!"
        print(a)
        

        これを作業フォルダに保存しておきます。ここでは D:\test\python\test.py としました。

        またこの作業フォルダを、VS Code のメニューから開いておきましょう。
        ・メニュー → フォルダーを開く → D:\test\python



        python_デバッグ開始!




         ・ブレークポイントをセットしてF5でデバッグ開始、F10でステップ実行


        Pythonはインタープリタ言語なのでビルドとか必要ありません。お手軽。
        ただこのとき、こんなエラーメッセージが出る事があります。



         これはPythonのLinter(構文チェッカ)が入ってないよ、というエラーのようなので
         インストールしておきましょう。