2011-07-30 7 views
9

私はフレームワークや表紙にログインするのには興味がありませんが、各メソッドの入口と出口で私のソースレベルのコードでのみ興味があります。私はそれがクラス名とメソッド名を提供し、それをファイルに記録するか、少なくともそれが画面上を飛ぶようにしたいと思います。デバッグセッション中にクラスとメソッド名ですべてのメソッドを追跡/トレースしてログに記録する方法はありますか?

私の質問は、既存のXcode/Debugger/Instruments施設で可能であるかどうかです。すべてのメソッドの入口と出口でNSLogステートメント以外の簡単な方法で実装できますか、この機能を提供する商用ツールがありますか?

私はここでソースメソッドを話しています...実行プロセスやスレッドではありません。ありがとう。

+0

を何このために、Time ProfilerのようなInstrumentsを使用すると間違っていますか? – jtbandes

+0

まあ、...私の質問で私が尋ねてきたものですが、私のソースコードの方法を追跡、追跡、または記録しないためです。 – Ric

+0

確かにどのメソッドが実行されたかを見ることができます... – jtbandes

答えて

9

Dave Dribinは正確に彼の記事Tracing Objective-C messagesでこれをカバーしています。

あなたが後にしている部分は、おそらくこれです:

あなたはYESNSObjCMessageLoggingEnabled環境変数を設定した場合は、Objective-Cランタイムは、/ tmpに/ msgSendsという名前のファイルにすべての派遣のObjective-Cのメッセージを記録します - <pid>。

+1

これは本当に印象的です。 Xcode 4.1でデバッグ用の環境を設定しようとしましたが、/ tmp/msgSends-という名前のファイルは表示されません。実際には、/ tmpフォルダが見つかりません。あなたはそれがどこにぶら下がっているかのヒントを持っていますか?どうも。 – Ric

+0

私はそこにいる。私はtmpフォルダが隠されていることに気付きませんでした。ターミナル経由でそれにアクセスする必要がありました。どうもありがとう。 – Ric

1

Xtrace(https://github.com/johnno1962/Xtrace)には多くの機能があり、Objective-Cのトレースに適しています。 1つは、あなたが持っているように、自分のプロジェクトへのソースアクセスが必要で、あなたが望むように、出入り時にメッセージを出すことができます。

  • デバッグ時の設定 - ハードコードすることができますか
  • 合併症のない統合デバッグ中にトレースを構成 - 1 .mmと1つの.h
  • NSRegularExpressionマッチング - クラス、メソッド、タイプ
関連する問題