是否可以在运行时将某个类方法的实现打印/记录到控制台屏幕?我假设日志将在汇编中,我很好。
答案 0 :(得分:5)
您可以在行的开头添加断点,逐行逐步调用并在调试器中调用“disassemble”:
我的一行代码(替换了私人信息)例如产生了这个:
-(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
这声称
反汇编给定函数名的全部内容。
注意:我在用于测试
的方法开始时使用了断点尝试创建符号断点以停止相关方法: