仪器中未记录的Objective-C方法的参数类型(OSX)

仪器中未记录的Objective-C方法的参数类型(OSX),objective-c,macos,Objective C,Macos,有没有办法确定工具追踪的客观C方法的论点类型? 我创建了一个定制的DTrace工具,它只列出一个类中的所有Objective-C调用。我正在尝试swizzle其中一个方法,但只列出了方法名称 有没有办法确定参数类型?或者,一种在不知道参数类型的情况下快速切换方法的方法?使用调试器并在您感兴趣的方法上设置断点。如果参数是对象类型,则可以使用print object找出它们是什么类。在x86上,参数通常在堆栈上传递。在PPC上,您可以在寄存器r3-r11中找到参数。如果使用类转储,则可以在方法定义中

有没有办法确定工具追踪的客观C方法的论点类型? 我创建了一个定制的DTrace工具,它只列出一个类中的所有Objective-C调用。我正在尝试swizzle其中一个方法,但只列出了方法名称


有没有办法确定参数类型?或者,一种在不知道参数类型的情况下快速切换方法的方法?

使用调试器并在您感兴趣的方法上设置断点。如果参数是对象类型,则可以使用
print object
找出它们是什么类。在x86上,参数通常在堆栈上传递。在PPC上,您可以在寄存器r3-r11中找到参数。

如果使用类转储,则可以在方法定义中看到C数据类型。这应足以进行旋转。一旦您使用了例程,就可以使用NSLog打印objective-C类型的描述


尝试了类转储,生成的唯一头文件包含我计划使用的swizzling方法,带有参数的类类型。谢谢