lldb断点对类class c中的所有方法

tbo*_*e12 13 xcode objective-c ios lldb

如何使用lldb自动在Objective C类中的所有方法上设置断点?

这对于学习复杂遗留类的行为很有用.我正在使用Xcode(包括lldb)进行iOS开发,手动浏览Xcode中的(大)文件并单击每个方法旁边的装订线以设置断点是很麻烦的.

Dav*_*Lee 22

一种选择是使用正则表达式断点.

breakpoint set -r '\[ClassName .*\]$'
Run Code Online (Sandbox Code Playgroud)

您可以使用正则表达式来满足您的需求.

该命令将创建一个断点,该断点在该类实现的所有方法上停止.但是,从超类继承的方法不会有断点.

要获取超类的方法,您必须使用条件断点.例如,如果是超类UIViewController,您可以执行以下操作:

br s -r '\[UIViewController .*\]$' -c '(BOOL)[(id)$arg1 isKindOfClass:[CustomVC class]]'
Run Code Online (Sandbox Code Playgroud)

对于x86更改(id)$arg1*(id*)($ebp+8).

最后,如果您真的想了解各种类的控制流程,请查看dtrace.它可能比调试器更适合这个.