8

是否可以在运行时将某个类方法的实现打印/记录到控制台屏幕?我假设日志将在汇编中,这对我来说很好。

4

1 回答 1

5

您可以在行首添加断点,逐行执行并在调试器中调用“反汇编”:

例如,我的一行代码(替换了私人信息)产生了这个:

-(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 回答