Goのデバッグができない

Go言語で作ったファイルをVSCode上でデバッグさせようとすると以下のエラーが発生しました。

 

f:id:lawrence-twin:20200322203133p:plain

 

対応方法はこちら

qiita.com

 

の記事を見たのですが自分の症状とはあまり関係なく、、、

そもそもGo.1.13以降ではGO111MODULE=onは既にデフォルトでON担っているとのこと。

もしかしていらない?と思ってSettings.jsonからGO111MODULE=onの設定を削除しました。

 

すると、エラーは解消されましたがHello, worldとコンソール上には何も表示されずデバッグもされない。調べるとデバッグ用のツールが必要とのこと

 

以下の記事を参考にデバッグ用ツールであるdlvをインストールした。

qiita.com

最初のgo getコマンドは問題なかったのですが、

dlv versionを実行すると以下の通りコマンドがないエラー

zsh: command not found: dlv

 

念の為$GOPATH/binに「dlv」が存在することと、

$GOPATH/srcにgithub.com以下dlv関連が存在すること確認しましたが 実行できず。

調べてみると以下の通り環境変数定義が不足しているとのこと

 

github.com

 

回答の通り以下のコマンドを実行

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上でデバッグを試すとちゃんとブレークポイントを設置したところで止まってくれました。めでたしめでたし。

f:id:lawrence-twin:20200326232707p:plain