Goのデバッグができない
Go言語で作ったファイルをVSCode上でデバッグさせようとすると以下のエラーが発生しました。
対応方法はこちら
の記事を見たのですが自分の症状とはあまり関係なく、、、
そもそもGo.1.13以降ではGO111MODULE=onは既にデフォルトでON担っているとのこと。
もしかしていらない?と思ってSettings.jsonからGO111MODULE=onの設定を削除しました。
すると、エラーは解消されましたがHello, worldとコンソール上には何も表示されずデバッグもされない。調べるとデバッグ用のツールが必要とのこと
以下の記事を参考にデバッグ用ツールであるdlvをインストールした。
最初のgo getコマンドは問題なかったのですが、
dlv versionを実行すると以下の通りコマンドがないエラー
zsh: command not found: dlv
念の為$GOPATH/binに「dlv」が存在することと、
$GOPATH/srcにgithub.com以下dlv関連が存在すること確認しましたが 実行できず。
調べてみると以下の通り環境変数定義が不足しているとのこと
回答の通り以下のコマンドを実行
export GOPATH=$HOME/go
export GOROOT=/usr/local/Cellar/go/1.12.7/libexec
export PATH=$GOPATH/bin:$PATH
export PATH=$PATH:$GOROOT/bin
その後dlvのコマンドを実行すると以下の通りうまくいきました。
lawrence@Chocolate bin % dlv version
Delve Debugger
Version: 1.4.0
Build: $Id: 67422e6f7148fa1efa0eac1423ab5594b223d93b $
再度VSCode上でデバッグを試すとちゃんとブレークポイントを設置したところで止まってくれました。めでたしめでたし。