wheatandcatの開発ブログ

React Nativeで開発しているペペロミア & memoirの技術系記事を投稿してます

VSCode + air + delveでデバッグする

Goのデバッグツールが導入していなかったので追加した。

PR

github.com

導入

まずは、デバッグツールのdelveを導入する

github.com

以下のコマンドを実行。

$ go install github.com/go-delve/delve/cmd/dlv

これで、dlvのコマンドが使用できるようになる。

$ dlv version
Delve Debugger
Version: 1.8.3

次にVSCodeにGo for Visual Studio Codeをインストール。

marketplace.visualstudio.com

これでVSCodeに実行とデバッグのメニューが追加されるので、次はデバッグツールのconfigファイルを追加。

.vscode/launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Remote",
      "type": "go",
      "request": "attach",
      "mode": "remote",
      "remotePath": "",
      "port": 2345,
      "host": "localhost",
      "cwd": "${workspaceRoot}",
      "env": {},
      "args": []
    }
  ]
}

launch.jsonの詳細は、こちらを参照

最後にairのconfigファイルを修正。

.air.toml

root = "."
tmp_dir = "tmp"

[build]
  bin = "./tmp/main"
  cmd = "go build -gcflags \"all=-N -l\" -o ./tmp/main ."
  delay = 1000
  exclude_dir = ["assets", "tmp", "vendor", "node_modules", ".expo-shared"]
  exclude_file = []
  exclude_regex = []
  exclude_unchanged = false
  follow_symlink = false
  full_bin = "dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec --continue tmp/main"
  include_dir = []
  include_ext = ["go", "tpl", "tmpl", "html"]
  kill_delay = "0s"
  log = "build-errors.log"
  send_interrupt = false
  stop_on_error = true

[color]
  app = ""
  build = "yellow"
  main = "magenta"
  runner = "green"
  watcher = "cyan"

[log]
  time = false

[misc]
  clean_on_exit = false

修正的にはcmdfull_binを修正。

これでローカル環境を起動して、VSCodeからデバッグを実行。

APIを実行すると、以下の通りブレークポイントが有効になり、変数の中身が確認できるようになる。

これでデバッグツールが使用できるようになった。