LoginSignup
25
23

More than 3 years have passed since last update.

VSCodeでNimのデバッグ(ステップ実行)

Last updated at Posted at 2018-09-10

概要

(追記)2018/09/11 Windows,Macでも動作確認できました。

VSCodeでNimアプリケーションのデバッグ&ステップ実行できますよ

VSCodeでのデバッグ

こちらの記事を参考に、とりあえず自分のLinux/Windows/Mac開発環境で試してみました。
Nimのバージョンは、0.18.0です。

以下、設定の手順となります。

  • Native-Debugプラグインをインストールする
  • コンパイルタスクを設定し、コンパイルする
  • デバッグ設定をする
  • ブレークポイントの設定をし、デバッグ実行を行う

Native-Debugプラグインをインストール

拡張機能より、"Native Debug"を検索し、インストールします。
インストール後は、VSCodeの再起動をしておいたほうが良いでしょう(たぶん)。

Screenshot from 2018-09-10 16-27-07.png

コンパイルタスクを設定する

tasks.jsonを作成・変更します。
"command"でコンパイルする対象のnimファイル(test.nim)は適宜置き換えて下さい。
ctrl+shift+bでビルドします。

.vscode/tasks.json
{
    "version": "2.0.0",
    "tasks": [{
        "label": "Build Debug",
        "type": "shell",
        "command": "nim c -d:debug --debuginfo --lineDir:on --debugger:native test.nim",
        "group": {
            "kind": "build",
            "isDefault": true
        },
    }]
}

デバッグ起動設定を行う

デバッグウィンドウを表示し、「構成がありません」の右隣の設定ボタンをクリックし、
選択肢の中から「C++(GDB/LLDB)」を選択します。(※「GDB」でも良いかもしれません。後述)
(追記:Windowsでは選択肢として表示されません。「GDB」を選択してください)

Screenshot from 2018-09-10 16-44-51.png

launch.jsonがデフォルト表示されますので、「program」属性の中身を、ビルド設定後生成される実行ファイル名に置き換えます。

launch.json
{
    "version": "0.2.0",
    "configurations": [

        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/test",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

「GDB」を選択した場合は、以下のシンプルな起動エントリになるようです。
Windowsでは、こちらの設定となりました。
ちなみにこちらでもデバッグ実行はできました。

.vscode/launch.json
        {
            "type": "gdb",
            "request": "launch",
            "name": "Launch Program",
            "target": "./test",
            "cwd": "${workspaceRoot}"
        },

ブレークポイントの設定を行い、デバッグ実行を行う

ソースの行番号の左側をクリックすることで、ブレークポイント設定がトグルされます。
その後、以下のいずれかの手段で、デバッグを開始します。

  • F5キー
  • ツールバーの緑色の右向き△ボタン
  • メニューバーの「デバッグ」-「デバッグの開始」

下記のキャプチャ画面では、ブレークポイントに停止し、ローカル変数の値が参照できていることが確認できます。
(※Nim上のコードから、ステップインするとC言語のソースに入ったりします。)

Screenshot from 2018-09-10 16-51-31.png

ちなみに、構成の違いによるデバッグ時の特徴としては以下のものでした。

  • C++(GDB/LLDB)の場合は、別ターミナルが表示される
  • GDBの場合は、別ターミナルは表示されない

まとめ

VSCodeによるNimのデバッグ(ブレークポイント&ステップ実行等)ができることが確認できました。
いままでは、Echoによるデバッグばかりでツラタンでしたが、ステップ実行ができるなら、
Nimの勉強効率&開発効率もかなり上がるのではと思います。

今回はLinux上でのデバッグ方法の紹介でしたが、Mac/Windowsでもできるとは思いますので、
どなたかチャレンジしていただければと思います。

(2018/9/11追記)Linux,Windows,Macいずれも動作確認できました。

25
23
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
23