2014年2月16日日曜日

Mac Mavericks:gdbがない!?

最近、家で簡単なプログラムを作るときはLinuxからMacが増えてます。(LinuxマシンはデスクトップPCで昔のゲーミング用なので、ファンの音がうるさい!それに比べて、自分が現在持っているMacはすべてノートPCで、基本は静か)
まあそれでも、OpenSourceだといきなりMacでやるのは冒険すぎるんで、まだまだLinuxマシンも使います。(時にはバージョンの違うLinuxで動きを見る必要がでてきて、WindowsのVMPlayer上のも動かすときがありますが)

Mavericksになって普通にgccが使えたから気にしてなかったんですが、デバッガを動かしたくなりgdbとコマンドを打つと"command not found"といってきます。XcodeやCommand Line Toolsはインストールしてあるのに、何で?
調べてみたら、Mavericksになってからgcc、ccはLLVM(Low Level VIrtual Machineらしいが、現在は固有名詞としているらしい)になり、結局clang一つが動いているようになったそうです。
その際、gdbは削除され代わりに"lldb"というコマンドになったそうです。実際、ターミナルで"-g"オプションをつけたバイナリをデバッグしてみると、普通にgdbのコマンドが使えました。結局、仮想化技術を使ってデバッガを統一しているんですかね? (調べてたらgdbを無理矢理Mavericksにインストールする方法をかいてたサイトもありましたが、lldbでデバッガが使えるなら、これでいいや)
ただこれだと普段、emacs上でソースコードを見ながらgdbでデバッグするスタイルができなくなり、ちょっと困っています。

追記:
Xcodeの"Edit schme"で、プロジェクトのRelease/Debugを切り替えるところをよく見たら、利用するデバッガとしてちゃんと"LLDB"と書いてありました。

0 件のコメント:

コメントを投稿