gpt4 book ai didi

objective-c - Cocoa:中断每个方法调用?

转载 作者:太空狗 更新时间:2023-10-30 03:49:07 27 4
gpt4 key购买 nike

通常在调试时,了解类的哪些方法以何种顺序被调用对我来说很重要。天真的解决方案(到目前为止我一直在使用)是在每个方法的顶部弹出一个 NSLog。但这是耗时、重复、丑陋的,如果我在调试后忘记删除日志,还会使我的代码看起来很幼稚。

一个更简洁的解决方案是在我的每个方法上设置断点,配置它们的操作以发出调试器命令:po NSStringFromSelector(_cmd) 并将它们设置为自动继续。这更漂亮,让我不必记住删除所有那些 NSLog,但同样重复或耗时。

我真正想要的是一种设置符号断点的方法,该断点在每个方法(类的?模块的?)上中断。任何调试/运行时高手都有关于从哪里开始寻找的解决方案或提示?

最佳答案

所有 Objective-C 方法调用都经过 C 运行时调用之一 objc_msgSendobjc_msgSend_stretobjc_msgSendSuperobjc_msgSendSuper_stret 根据 Objective-C Runtime Reference 的“发送消息”部分.所以你应该能够捕获那些,并给他们操作来记录前两个参数的相关部分(它是正常发送的目标和选择器,一个描述父类(super class)的结构,它包含 super 调用的目标和类类型).

关于objective-c - Cocoa:中断每个方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6961023/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com