yn2011's blog

技術メモ

VSCodeでGoのデバッグ

今更感はあるがVSCodeでGoのソースコードデバッグしてみたので記録。

環境

delveインストール

github.com

VSCodeにテスト対象の$GOPATHを認識させる

  • 方法は複数あるが、VSCodeのworkspaceディレクトリを自動的に$GOPATHとして認識してくれるようにするのが1番手軽そう

launch.jsonを作る

  • テスト対象のプロジェクトをVSCodeで開き、[構成の追加]をクリック(画像は既に構成追加済み)

f:id:pokuwagata:20190615215335p:plain

  • 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": []
    }
  ]
}

デバッグする

  • breakpointを置く
  • テストコードの[debug test]をクリックする。テストメソッド単位で実行できる。

f:id:pokuwagata:20190615220016p:plain

  • breakpointの位置で処理が止まる。テストメソッドの中でも止められるし、テストメソッドから呼ばれた先のメソッドの中でも止められる。
  • これでテストが通らなくなった場合の原因調査がスムーズに

f:id:pokuwagata:20190615220221p:plain

まとめ

  • VSCodeソースコードのdebugを行う際は、launch.json等の設定ファイルへの習熟が必要な印象があったが、Goの場合はあまり考えることがない
  • delveは必要だったが、それ以外はVSCodeとGo本体というシンプルな構成でデバッグ可能

Goやっていきましょう