类目标中所有方法的lldb断点c

我怎样才能自动使用lldb在Objective C类的所有方法上设置断点?

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

一个select是使用正则expression式断点。

breakpoint set -r '\[ClassName .*\]$' 

你可以玩正则expression式来适应你的需求。

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

为了获得超类的方法,你必须使用条件断点。 例如,如果超类是UIViewController ,则可以执行如下操作:

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

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

最后,如果你真的想了解通过各​​种类的控制stream程,请检查dtrace。 这可能比debugging器更适合这个。

 br se -f FooViewController.m -p '^@property|^ *- *\(' 

“br se”是“断点设置”的简称,将你自己的文件名传递给-f参数,而-p参数是Objective C中属性和方法的粗略正则expression式。

注意事项:这似乎不适用于.h文件,所以如果您在标题中声明了要观看的属性,则可能需要在其支持的实例variables上设置观察点。

这是迄今为止我find的最好的解决scheme,如果您认为他们会有所帮助,请张贴替代解决scheme。