VSCodeでGoのデバッグ
今更感はあるがVSCodeでGoのソースコードをデバッグしてみたので記録。
環境
delveインストール
VSCodeにテスト対象の$GOPATHを認識させる
- 方法は複数あるが、VSCodeのworkspaceディレクトリを自動的に$GOPATHとして認識してくれるようにするのが1番手軽そう
- settings.jsonに
"go.inferGopath": true
を追記 - stackoverflow.com
- settings.jsonに
launch.jsonを作る
- テスト対象のプロジェクトをVSCodeで開き、[構成の追加]をクリック(画像は既に構成追加済み)
- launch.jsonが作成される(作成済みの場合は追記される)
{ // IntelliSense を使用して利用可能な属性を学べます。 // 既存の属性の説明をホバーして表示します。 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Launch", "type": "go", "request": "launch", "mode": "auto", "program": "${fileDirname}", "env": {}, "args": [] } ] }
"program": "${fileDirname}",
は開いているファイルが属するパッケージをテスト対象にする- その他の設定値に関する説明はDebugging Go code using VS Code · microsoft/vscode-go Wiki · GitHubを参照
デバッグする
- breakpointを置く
- テストコードの[debug test]をクリックする。テストメソッド単位で実行できる。
- breakpointの位置で処理が止まる。テストメソッドの中でも止められるし、テストメソッドから呼ばれた先のメソッドの中でも止められる。
- これでテストが通らなくなった場合の原因調査がスムーズに
まとめ
- VSCodeでソースコードのdebugを行う際は、launch.json等の設定ファイルへの習熟が必要な印象があったが、Goの場合はあまり考えることがない
- delveは必要だったが、それ以外はVSCodeとGo本体というシンプルな構成でデバッグ可能
Goやっていきましょう