実行時に特定のクラス メソッドの実装をコンソール画面に出力/ログ記録することは可能ですか? 私はログが組み立てられていると仮定していますが、それは私にとっては問題ありません。
質問する
365 次
1 に答える
5
行の先頭にブレークポイントを追加し、行ごとにステップ実行して、デバッガーで「逆アセンブル」を呼び出すことができます。
たとえば、私のコードの1行(個人情報を置き換えたもの)は次のようになります。
-(void) method
{
__weak typeof(self) selfReference = self; // <-- This call was disassembled.
...
Project`-[Class method] + 32 at Class.m:176:
-> 0x9c5cc: ldr r1, [sp, #304]
0x9c5ce: add r0, sp, #296
0x9c5d0: blx 0x33abec ; symbol stub for: objc_initWeak
0x9c5d4: ldr r1, [sp, #304]
編集
私はアセンブリにあまり慣れていないため、完全に機能していることを確認できませんが、デバッガー (私が使用している Clang) を使用して呼び出すことができます
disassemble -n methodName
これは、
指定された関数名の内容全体を逆アセンブルします。
注意:テストに使用していたメソッドの開始時にブレークポイントを使用してこれを行いました
問題のメソッドで停止するシンボリック ブレークポイントを作成してみてください。
于 2013-08-27T14:57:24.567 に答える