Visual Studio Codeを使ってGoのコードをデバッグする
Goのデバッガ
Goでデバッガを使いたい場合、gdb, delveといったツールは初心者には操作が難しい。
(コマンドラインからbとかlとかpとか入力して、ブレークポイントの設定からやらなければならないので、わたしには厳しかった)
しかし、Visual Studio CodeのGo拡張機能が無料で利用可能なので、これを使うと簡単にデバッグできる。
インストールが必要なもの
以下3つインストールが必要。
- Visual Studio Code
- Visual Studio CodeのGo拡張機能
- delve https://github.com/derekparker/delve
Visuao Studio CodeのGoの拡張機能が裏でdelveを操作することでGUIデバッグ機能を提供しているので、delveも入れる必要があることに注意。
前提条件
インストール手順 (Ubuntu16.04 64ビットデスクトップ版で実施)
Visual Studio Codeをダウンロードします。
$ firefox https://code.visualstudio.com/download
「.deb」のリンクを押します。
(32ビットのパソコンを使っている人は「32bit versions」のページでやって下さい)
そうすると「code_チョメチョメ.deb」のダウンロードの許可を求めるポップアップウインドウが開きます。
ここで「ファイルを保存する」を選びます。
上記debファイルが所定の場所にダウンロードされます。
(わたしの場合は「ダウンロード」配下にファイルが保存されました)
ダウンロードしたdebファイルをインストールします。
まず、debファイルを保存した場所へ移動します。
$ cd ~/ダウンロード
インストールコマンドを実行します。
$ sudo dpkg -i code_1.7.2-1479766213_amd64.deb
Visual Studio Codeが起動できることを確かめます。
$ code
こんな画面が開いたらokです。
Goの拡張機能をインストールします。
これが無いと画面からブレークポイントを設定し、デバッグできません。
Visual Studio Codeの画面左側最下の「拡張機能」のアイコンを押します。
検索ボックスに「Go」と入力すると「Go/Rich Go language support for Visual Studio Code」という候補が出てくるので、それの「インストール」を押します。
Goのプロジェクトを用意します。
$ export GOPATH=/home/echizen/_go $ mkdir -p /home/echizen/_go/src/github.com/oyakata/ $ cd /home/echizen/_go/src/github.com/oyakata/ $ git clone git@github.com:oyakata/tokyo.git $ cd tokyo
delveをインストールします。
https://github.com/derekparker/delve/blob/master/Documentation/installation/linux/install.md
このページの説明に従って、作業を行います。
(今回はgo getでやりました)
$ go get github.com/derekparker/delve/cmd/dlv
(プロンプトが返ってくるまで少し時間がかかります)
ここまで成功すればVisual Studio Codeの画面からデバッグ可能です。
実際にデバッグをやってみます。
Visual Studio Codeの画面を開きます。
(既に動作確認で開いた画面は一度閉じて、開き直しておいた方が良いでしょう)
$ code
画面左最上のファイルのアイコン「エクスプローラー」を押して、「フォルダーを開く」ボタンを押して、プロジェクトディレクトリを開きます。
先ほど用意したプロジェクトを選択し、「OK」を押します。
すると、Visual Studio Codeの画面の左側にプロジェクトの構成が読み込まれるので、デバッグしたいファイルを開いて行番号の隣の赤い●を押すとブレークポイントを設定できます。
画面左の下から2番め「デバッグ」アイコンを押すと、デバッグ実行できます。
初期状態だと「構成がありません」と表示されるので、赤い●が付いている歯車アイコンを押して「Go」を選択して下さい。
あとは、デバッグの右にある▶を押せばデバッグ機能が使えます。
以上
参考リンク
Ubuntu16.04にVisual Studio Codeをインストールする - Desktop Linux のススメ
Visual Studio Codeのすゝめ (Golang寄り) - 気まぐれLinux
Visual Studio CodeによるGo言語のデバッグ | Developers.IO
Google App Engine for Go のローカルサーバでデバッグをする #golang #GAE - Qiita
software installation - How to install Visual Studio Code on Ubuntu? - Ask Ubuntu
Debugging Go Code with GDB - The Go Programming Language