MacでGo言語(golang)のLiteIDE導入

Mac OS 10.9 mavericksにLiteIDE X20を導入したのときの備忘録です。

基本的にはこちらのサイトに従ってインストールしていったのですが
ハマりどころがあったのでメモ。
Going Go Programming: Installing Go, Gocode, GDB and LiteIDE

LiteIDEでStart Debuggingしてもデバッグされない

症状は、デバッグスタート(緑色の矢印がmain関数を指す)するが
ブレイクポイントで止まってくれない。

Async Recordの中身が参考サイトのように充実してなくてスカスカ。
stoppedとthread_id=1しか表示されない

コンソールには

Unable to find Mach task port for process-id 12383: (os/kern) protection failure (0x2).\n (please check gdb is codesigned - see taskgated(8)

的なことが表示されてて、どうもgdbのcodesignedがうまく言っていない様子。

やったこと

全てこの手順で行う必要があるのかは微妙ですが
とりあえず正常に動くようになるまでの作業を列記します。

証明書の再発行

証明書の手順が間違ったかな?と思い
一度作ったgdb-certをキーチェインアクセスから削除。
再度作成しました。

コード署名失敗

$ sudo codesign -s gdb-cert /usr/local/bin/gdb
/usr/local/bin/gdb: is already signed

もう既に署名済みだよと怒られるばかり。。。

taskgated修正

golang - Mac OS X 10.9 MavericksでgdbでGoのコードをデバッグする - Qiita
こちらを参考に修正しました。

sudo vi /System/Library/LaunchDaemons/com.apple.taskgated.plist

-       <string>-s</string>
+       <string>-sp</string>

stringオプションを -s から -sp に変更。

そしてMacを再起動!

gdb削除&再make install

$ cd /usr/local/bin
$ sudo rm -rf -R gdb

$ cd ~/Downloads/gdb7.7
$ sudo make install

一度フォルダ丸ごと削除して、もう一度gdbをmake installしました。

コード署名成功

$ sudo codesign -s gdb-cert /usr/local/bin/gdb

今度はちゃんと署名成功!


そしてLiteIDEでStart Debuggingしたらブレイクポイントで止まり
ローカル変数の内容も確認できました!
f:id:MSitter29:20140220155155p:plain