読者です 読者をやめる 読者になる 読者になる

Mac10.9(Marvericks) 上のEclipse-CDTでgdbを使用できるようにする

Mac10.9で、Xcode Command Line Toolsをインストールしてもgdbはインストールされない。
それは、10.9以降のXCodeのデフォルトデバッガはlldbになっているからで、gdbは個別にインストールするしかない。

Eclipse+CDTのデバッガはgdb。こいつは入れたい。
試行錯誤した結果、下記で行ける。

gdbインストール

インストールにはMacPortが手っ取り早いので、MacPortが使える環境で、下記コマンドからインストールする。

sudo port install gdb

使用できる状態にする

が、この状態ではgdbが使用出来ない。
それは、何故かggdbという名前でインストールされているから。
なので、gdbにスタティックリンクを貼る。

sudo ln -s /opt/local/bin/ggdb /opt/local/bin/gdb

これでコマンドラインからgdbを使用できる。

Eclipseからの使用

が、この状態でEclipseからDebug実行しようとすると、

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

というエラーが発生してしまう。

f:id:osajiru:20140917054026p:plain

これは、デバッガが他のプロセスを操作しようとするのに必要な権限が無いため、Macのカーネルに弾かれてしまうことが原因。

下記の方法で解決する。

1.Spotlightなどからキーチェーンアクセスアプリを開く。
2.[キーチェーンアクセス]-[証明書アシスタント]-[証明書作成]メニューを選択する。

f:id:osajiru:20140917054254p:plain

3.表示される「証明書情報入力」画面で、下記のように入力し、”デフォルトを無効化”にチェックを入れる。
 名前:(自分の名前)
 固有名のタイプ:自己署名ルート
 証明書のタイプ:コード署名

f:id:osajiru:20140917054416p:plain

4.「証明書の場所の指定」画面まで、デフォルト状態のまま「続ける」ボタンで進み続ける。
5.下記情報を入力し、「作成」ボタンをクリックする。
 キーチェーン:システム

f:id:osajiru:20140917054516p:plain

6.作成した証明書をダブルクリックする。

f:id:osajiru:20140917054541p:plain

7.証明書画面で、「この証明書を使用するとき」に「常に信頼」を選択する。

f:id:osajiru:20140917054558p:plain

8.OSを再起動する。 9.ターミナルから下記コマンドを実行し、デバッガと証明書を紐付ける。

sudo codesign -f -s  “(証明書名[ここではosajiru])"  /opt/local/bin/gdb

以上の長〜い手順で、Eclipseからも使えますゾ。

© 2009-2017 Osajiru All Rights Reserved.