LoginSignup
7

More than 3 years have passed since last update.

VS Codeでdelveによるgo言語のデバッグ設定をする(mac)

Last updated at Posted at 2021-02-02

前提として、home brewgolang がインストールされていること

brew install go
go version

1. GOPATHを通す

export GOPATH=/Users/username/go
export PATH=$GOPATH/bin:$PATH
source ~/.bash_profile
<解説>

ターミナルを開き、上から順に実行。

・GOPATHという環境変数に /Users/username/go を代入

・PATHという環境変数に $GOPATH/bin を代入。※実質 /Users/username/go/bin という文字列に
 ※$PATHは terminalでecho $PATHとした時に設定されている環境変数
  例:PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
  のPATHで、そのPATHに追加するよってこと
 ※$GOPATH/bin:$PATHと書けば、上記の例で言うと
  /Users/username/go/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
  と追加され、逆に
  $PATH:$GOPATH/binと書けば、
  /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/username/go/bin:
  と追加される。
 ※コマンド検索される時に、PATHに書かれている左から検索されるので、よく使うコマンドのbinのパスは左に書いておくと良い

sourceというLinuxコマンドを打って、ファイルの変更内容を起動中のターミナルに反映させる。
 ※sourceコマンドを打たないと、その変更が反映されないので、ターミナルから抜けて再起動する必要がある。
 ※変更したのにあれ?と思ったら、一回ターミナルを抜けて再起動なんか試すと良い

2. GoプラグインをVS Codeにインストール

・VS Code用のGoプラグインを入れる
 VisualStudio | Marketplace: Go for Visual Studio Code

3. Goプラグインに必要な各種ツールをVS Codeにインストール

・VS Codeでコマンドパレットを開く Command + Shift + p
>Go: Install/Update Toolsと入力する
・表示されるツールから任意のツールにチェックを入れてOKボタンを押す。
 ※大体以下のようなツールが出てくる

tools
gocode
gopkgs
go-outline
go-symbols
guru
gorename
gotests
gomodifytags
impl
fillstruct
goplay
godoctor
dlv
gocode-gomod
godef
golint

※dlvがdelveにあたるツールで、デバッグに必要

dlv versionコマンドでdelveのバージョンを確認。
 ※ちゃんとバージョンが確認されれば、パスも通っているし、ダウンロードされたことを確認できる

4. デバッグのセットアップとして、launch.jsonを作成する

・VS CodeのRUNコンソール画面に移動
 ※左のデバッグ矢印ボタン[▷]を押すとそれがRUNコンソール
To customize Run and Debug create a launch.json filecreate~.jsonをクリック
・VS Code中央上部に Select Environment と表示されるので、 Go Dlv (Experimental) を選択
 ※選択後に .vscode/launch.json ファイルが生成される

5. launch.jsonの編集

・デフォルトでは、typeフィールドが "type": "godlvdap" となっているので、"type": "go" に書き換える

※以下、参考までに、

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceFolder}/src",
            "env": {
                "PORT":00000,
                "LOG_LEVEL":"debug",
                "AWS_ACCESS_KEY_ID":"XXXXX",
                "AWS_SECRET_ACCESS_KEY":"YYYY",
                "AWS_DEFAULT_REGION":"ap-northeast-1",
                "S3_BUCKET_USERS":"username.sandbox.users",
                "JwtExpiration":60
            },
            // "args": []
        }
    ]
}

<解説>

nameは、VS Code側で表記するrunボタンのデバッガ名
typeは、Goなど言語の指定を書く
program.vscode/launch.jsonが置かれている該当のディレクトリパスを指定
envに環境変数の引数を持たせることも可能。PORTを指定したり、AWSのKEYとかも設定できる

指定できる属性:debugging#_launchjson-attributes

6. VS Codeでデバッグポイントを起き、run/debugを実行する

・プログラムを止めたい該当箇所に、デバッグポイントを起き、実行。止まることを確認。

7. これでデバッグができる

うれしみ

以上、
ありがとうございました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7