繁体   English   中英

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

[英]lldb breakpoint on all methods in class objective c

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

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

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

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

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

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

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

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

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

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

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

“br se”是“断点集”的缩写,将您自己的文件名传递给-f参数, -p参数是Objective C中属性和方法的粗略正则表达式。

注意事项:这似乎不适用于.h文件,因此如果您要在标题中声明要查看的属性,则可能需要在其后备实例变量上设置观察点。

这是我到目前为止找到的最佳解决方案,如果您认为它们会有所帮助,请发布替代解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM