Skip to content

アプリのデバッグ

Goアプリのデバッグ方法を記載します。

事前準備

# デバッグ向けツールをインストール
go install github.com/go-delve/delve/cmd/dlv@latest

VSCode上でソースコードにブレークポイントを置いてmain.goクラスで F5 キーを押下するとデバッグが開始されます。

REST APIをリモートデバッグ

net/httpなどで実装したREST APIをデバッグします。

  • デバッグポートを開放してアプリ起動
# バイナリを起動(listenに任意のポートを指定)
dlv exec --headless --continue --accept-multiclient --listen=:8484 main
# コンパイルして起動(listenに任意のポートを指定)
dlv debug --headless --continue --accept-multiclient --listen=:8484 ./cmd/main.go
  • デバッガ接続
# dlv connect {デバッグ先アドレス}:{起動時に指定したポート}
dlv connect localhost:8484
  • ブレークポイント設定
# 関数名を指定して設定
(dlv) break handler.Greet
# 行数を指定して設定
(dlv) break handler/sample_handler.go:30
  • API呼び出し
curl localhost:8080/sample/greet?name=nob
  • ブレークポイントまで処理を実行
(dlv) continue

ローカルアプリをリモートデバッグ

外部からのリクエストを必要としないアプリをデバッグします。

  • アプリ起動
# 外部からデバッグ(dlv connect localhost:8484で接続)
dlv debug --headless  --accept-multiclient --listen=:8484 ./main.go
# (参考)ローカルでデバッグ
dlv debug main.go
  • ブレークポイント設定
break main.go:7
  • ブレークポイントまで処理を実行
(dlv) continue