デバック時に変数を準備なしでNSLogに書き出す方法

こちらのブログでそんなことができることを知り、結構便利だったのでここでも紹介します。 デバックの基本はNSLogで変数をコンソールに書き出すことです。 しかし、NSLogを書き忘れたり、追加したりしたくなるとそのたびに デバッグ停止→NSLogを書き加える→最初からデバッグを行わなければならなく、かなりめんどくさいです。 そこで、NSLogでの変数確認を”ソースに書く”ではなく、”気になったときに気になった変数の中身を出力する”方法を紹介します。

使い方

まず、好きなタイミングでブレークします。 大抵の場合はソースの特定の位置でブレークしたいので、ブレークポイントを使うといいでしょう。 実行すれば、ブレークポイントで自動的にブレークします。 ブレークしたら簡単で、下の変数パネルから出力したい変数を右クリック→Print Description of “○○”するだけです。 これだけで、

1
NSLog(@"%@",obj);

と同じように、コンソールに中身が出力されます。

使い所

どういう時に使いやすいかなとちょっと考えて見ました。 もちろんNSLogをかけないor書きたくないという前提です。

  • NSStringで文字が長くて表示しきれていないとき
  • NSDicrionaryなど、変数パネルでは中身の値を直接見れない変数を見たいとき
  • 再現性が低いバグで、さらにどこにバグが潜んでいるかわからないとき

とくに、再現性の低いバグをデバッグしたいときはこの方法はすごい強力だと思います。