如何使用lldb在Objective C类中的所有方法上自动设置断点?
这对于学习复杂的遗留类的行为很有用.我正在使用Xcode(包括lldb)进行iOS开发,手动通过Xcode中的(大)文件并单击每个方法旁边的沟槽设置断点是很麻烦的.
解决方法
一个选项是使用正则表达式断点.
breakpoint set -r '\[ClassName .*\]$'
您可以使用正则表达式来适应您的需要.
该命令将创建一个断点,停止该类实现的所有方法.但是,在从超类继承的方法上不会有断点.
要获取超类的方法,您必须使用条件断点.例如,如果超类是UIViewController,您可以执行以下操作:
br s -r '\[UIViewController .*\]$' -c '(BOOL)[(id)$arg1 isKindOfClass:[CustomVC class]]'
对于x86 change(id)$arg1 to *(id *)($ebp 8).
最后,如果您真的想了解各种类的控制流程,请查看dtrace.这可能比调试器更适合.