NSObjCMessageLoggingEnabled with iPhone 3.0
-
06-07-2019 - |
質問
iPhone OS 2.2.1用に作成されたプログラムをデバッグしていますが、3.0用にわずかに書き換える必要があります。 「舞台裏」など、行われているすべてのObjective-Cメッセージ呼び出しのリストを保持している呼び出し、非常に便利です。
ウェブサイトでNSObjCMessageLoggingEnabledを見つけましたが、iPhoneで動作するかどうかはわかりません。誰かがこれが機能するかどうか/どのように機能するかを知っていますか?
ありがとう!
解決
最終的に、これを行うための比較的単純な(まったくエレガントではありませんが)方法を見つけました。
iPhoneでのデバッグ中に、objc_msgSendのブレークポイントを設定しました。次に、この単純なGDBスクリプトを入力しました。
while 1
printf "[%s %s]", (char *)object_getClassName($r0), (char *) $r1
c
end
これにより、各メソッド呼び出しが出力されます。これは完全ではありません。メッセージが送信されるオブジェクトのクラス名を出力するので、オブジェクト自体ではありませんが、必要なものに対しては機能します。
これはiPhone自体でのみ機能します。
他のヒント
NSObjCMessageLoggingEnabled
(およびそのツイン instrumentObjcMessageSends(BOOL)
)はシミュレータで使用できますが、デバイスでは使用できません。
所属していません StackOverflow