Go言語はGDBを使ったデバッグが行えます。

以前、MacとIntelliJでGo言語環境を作る | MemeTodoで書いたgo-lang-plugin-org/go-lang-idea-pluginの方もgdbでのデバッグに対応してます。

もう一つのGo言語のIDEとして有名なLiteIDEもGDBでのデバッグに対応してるそうなので、それを設定するまでのメモです。

(結局Go言語のIDEライクなものって何が使われてるんだろ?)

HomeBrew

brew install go

Homebrewからインストールできます。

GOROOT は設定しない

GOROOTはGo言語をインストールした場所を示します。 (少なくてもHomeBrewでインストールした場合は)GOROOTは指定してはいけないらしいです。

あなたがGOROOTを本当に設定しなくていい理由 | Androg

GOPATH は設定する

以下のようにした

# golang
export GOPATH=$HOME/local/go
export PATH=$PATH:$GOPATH/bin

これからGoを始める人のためのTips集 #golang - The Wacul Blog で書かれているように、自分のワークスペースとgo getするもので複数パスを登録することも出来ます。 一緒にしちゃったほうがGo言語らしいのかなと思ったのでひとつのパスにしてます。

(これ公式のドキュメントの推奨パスとかあるのかな?)

liteideをインストールする

からダウンロードしてインストールする。

GDB

OS X Mavericks 10.9にはGDBが入ってない。

HomeBrewでインストールする場合は、以下から入れる。

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/gdb.rb

そのままだとゲートキーパーに止められて動かせないので、 オレオレ証明書と権限を与えて動かせるようにする。

  1. GDBインストール
  2. gdb-certの証明書をキーチェンで発行
  3. /System/Library/LaunchDaemons/com.apple.taskgated.plistを書き換える
  4. sudo codesign -s gdb-cert /usr/local/bin/gdb で署名する

以下を参考にした。

証明書の発行はSafx: MacでGoのデバッグ環境を構築するの図が分かりやすい。

liteide + GDB

ブレークポイントを打って止められるようになる。

img

Stringがstructのままだけどそんなもんなのかな? (AppCodeとかXcodeもこの辺徐々に対応してたからそういう感じなのかな)

トラブルシューティング

liteideでビルドしようとしてもエラーがでて動かない

go: cannot find GOROOT directory: /usr/local/go

liteideの環境設定で system を選択する。 他の設定はGOROOT等が上書き設定されていて動かない感じだった。

img

liteideの使い方は以下を参照した。

###感想

GOROOTGOPATH などの設定についての記事があふれていて、ものすごく検索しても分かりにくいと思いました。 (この記事もそれになりそう)

The Right Way的な常に更新してて、検索からたどり着きやすいものが欲しい気がしました。

翻訳についても色々な所に同じものがあったりして(ついで更新止まってる)、どれ参照すればいいのかよく分からない感じがしました。

http://golang-jp.org/ という公式サイトの翻訳サイトもあり、こちらはGitHubからpull requestを受け付けているそうなので期待しています。