VSCodeにC++用デバッガ(gdb)を設定する

最近C++の勉強をしており、デバッグしたくなったのでメモ。

実行環境

これらの導入方法については解説しません。

launch.json を作成

VSCode を起動後、デバッグタブをクリックしても何も表示されていません。このままではデバッグができないので create a launch.json file をクリックして追加します。

f:id:takunology:20200408103933j:plain

検索欄に候補が表示されるので、GDBを選択します。

f:id:takunology:20200408104712p:plain

追加されると.vscode ディレクトリに launch.json が作成されます。この中にはデバッガの設定が書かれています。

デバッガの設定

デバッガの設定箇所は主に3か所です。あとはお好みでどうぞ

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            //実行ファイル名
            "program": "${workspaceFolder}/app.exe",
            "args": [],
            //ブレークポイントで止める場合は true
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            //MinGW の GDB へのパス
            "miDebuggerPath": "c:/mingw/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

できたらこれを保存してデバッグ開始です。

デバッグ

F5 キーを押すか、再生ボタンをクリックするとデバッグが開始されます。

f:id:takunology:20200408110145p:plain

すみません。何度スクショしてもVSCodeの文字がぼやけてしまうので読みにくいかもしれません。

Visual Studioのようにステップインはできるのですが、変数の可視化はできないみたいです。これは実際にコマンドを入力して確認する他なさそうです。

個人的には gdb を使うよりも Visual Studioデバッグしたほうが楽だと思います。