3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VSCodeでGDBデバッグするときに標準入力を渡す(Nimで試す)

Last updated at Posted at 2019-05-12

デバッグするときに標準入力渡せない問題

普段VSCodeでNimを書いていると、ちょくちょくデバッグしたいな〜となります。そこでNative Debugを入れてGDBでデバッグしていたのですが、標準入力を受け付けてくれない問題がありました(もしかしたら僕が知らないだけで方法があるのかもしれません)。
流石にしんどいのでファイルに入力を記述し、パイプで渡そうと思ったのでその設定メモ。
僕はNimですが、おそらくC/C++あたりでも同じなのではないでしょうか。

settings.jsonに設定を記述

今回はプロジェクトに関わらずグローバルで設定を反映させたかったので、settings.jsonに記述しています。個別に設定したい場合はlaunch.jsonに同様のことを記述すればよいはずです。

以下僕の設定ファイルです。arguments以外は適当にVSCodeでNimのデバッグ(ステップ実行)あたりを参考にして書いてください。

settings.json
{
    ...他の設定とか
    "launch": {
        "configurations": [
            {
                "name": "Nim Debug",
                "type": "gdb",
                "request": "launch",
                "arguments": "< ${fileBasenameNoExtension}.input",
                "target": "${fileBasenameNoExtension}",
                "cwd": "${fileDirname}",
                "valuesFormatting": "parseText"
            }
        ],
        "compounds": []
    }
}

こんな感じで、settings.jsonの下の方にlaunch以降を追記してあげます。
この設定では、test.nimがあったらコンパイルによって生成しておいたバイナリtestを実行し、test.inputを標準入力として渡しています。要は"arguments": "< ${fileBasenameNoExtension}.input"の部分で、引数として< [nimファイル名から拡張子を除いた文字列].inputを渡すことで、パイプで入力を渡しているわけですね。

実際にデバッグ

スクリーンショット_2019-05-12_21-31-31.png
なんだかいい感じにできてますね。よかったよかった。

参考

3
0
0

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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?