2011-12-07 6 views
4

私はすでに答えを知っていると確信していますが、とにかく質問したいと思っていました。 私は、自分の変数が特定のポイントになるようにするために、ログとブレークポイントを作成しなければならないことにうんざりしています。XCode 4でブレークポイントを使用せずに変数を監視する方法はありますか?

変数がブレークポイント/ログなしで実行されているのを知る方法は誰にでも分かりますか?

ありがとうございます!

答えて

6

変数が特定の点で特定の方法でなければならないことを保証したい場合、それはアサーションが何であるか(例えばNSAssert())です。

変数の変更時期を知りたい場合は、ブレークポイントではなくウォッチポイントを使用します。

特定のポイントで変数をチェックし、それが「特に何か」である場合にのみブレークしたい場合は、条件付きブレークポイントを使用します(デバッガの変数をクリックして「ウォッチ」を選択します)。 xcodeのブレークポイントを右クリックし、 "ブレークポイントの編集"を選択します。これを使用して、たまに頻繁に(100回の火の後など)壊すこともできます。

コードの行に到達した時点を知りたい場合は、[ブレークポイントの編集]ウィンドウでアクション "サウンド"を使用し、次に[アクションを評価した後で自動的に続行]を使用します。私はこれをパフォーマンスの仕事にかなり使っています。私はそれが鳴り始めると聞いて、私はコード内のホットスポットを発見した知っている。

あなたは何かを覚えていましたか?

+0

ニース!私はあなたがブレークポイントですべてを行うことができることに気付かなかった。これは役に立ちます!ありがとう – Louie

4

ロブ・ネイピアの優れた提案を上に続いて、あなたもこのように、あなたが気に値を記録し、その後継続してブレークポイントを編集することができます。

Image showing a logging breakpoint.

あなたが見ることができるように、私はしましたこのブレークポイントを設定して式[marker center]の値を記録します。 GDBはしばしば式の最終的なタイプが何であるかを知る助けを必要とします。そのため私は(CGPoint)キャストを追加しなければなりませんでした。これは明らかに、単純な古いブレークポイントを設定するために左の列をクリックするだけではなく、NSLog()ステートメントをコードに挿入するよりも少ない作業であり、デバッグセッションの途中で行うことができます再コンパイルしたり、アプリを再起動したりすることもできます。

関連する問題