2012年3月22日木曜日

Xcode4.3実機デバッグ時にコンソールにログが出ない件


2012/03/27 追記:
Xcode4.3.2にアップデートしてCommand Line Toolsをインストールしたら直ったっぽい。
ただ、直った原因がこれかどうかの裏はとってない…。


iOSアプリのデバッグのためにプロジェクトを"Run"した時、NSLogを使ったログは出力されるのに独自に定義したカスタムログ出力マクロを使ったログが出力されないという現象が起きました。
ちょっと前まではちゃんと出てたのに急に出なくなったなと思って調べてみたところ、どうやらXcode4.3から標準デバッガーがLLDBに変更されたのが原因のようです。

根本的な解決ではないですが、とりあえず以前のようにログを見れるようにする方法は以下のとおりです。


現象

Xcode4.3で以下のようなマクロを使用してログを出力しているプロジェクトを実機デバッグしたとき、コンソールにログが表示されない。
NSLog()を直接使えば出力される。
#define LOG(fmt, ...) NSLog(@"%s:%d : %@", (strrchr(__FILE__, '/') + 1), __LINE__, [NSString stringWithFormat:fmt,## __VA_ARGS__])
ちなみに、シミュレータデバッグ時はマクロでもNSLog()でもちゃんと出力される。


回避方法

Runスキーマのデバッガー設定を"GDB"にする。

詳細は以下のとおり。

1.Xcodeのツールバーにあるプロダクト名をクリックして"Edit Scheme..."を選択。

2."Run <アプリ名>.app"のInfoタブの設定でDebbugerを"LLDB"から"GDB"に変更する。

これで、とりあえず以前通りログが表示されるようになる。

根本的な解決方法をご存知の方がいらっしゃいましたらご教示願います。



0 件のコメント: