Ios 如何在Xcode 4.6中破解所有符号化代码?

Ios 如何在Xcode 4.6中破解所有符号化代码?,ios,objective-c,xcode,debugging,lldb,Ios,Objective C,Xcode,Debugging,Lldb,我正在解开通心粉代码,作为练习,我将从应用程序启动时开始遍历它,打开applicationdFinishLaunching,然后跨步进入 当第一个方法返回时,我进入汇编。知道什么时候该跨过去,什么时候该跨进去真是一件痛苦的事。我希望调试器暂停所有符号化的代码(即,我可以在Xcode中看到的代码——也许这称为“用户”代码?基本上是非框架/库代码),但我不关心苹果的内部方法 我正在寻找在我(或我的前任)编写的每个方法和函数的第一行(或每一行)上设置断点的实用等效方法 是否有一些LLDB巫术可以做到这

我正在解开通心粉代码,作为练习,我将从应用程序启动时开始遍历它,打开
applicationdFinishLaunching
,然后跨步进入

当第一个方法返回时,我进入汇编。知道什么时候该跨过去,什么时候该跨进去真是一件痛苦的事。我希望调试器暂停所有符号化的代码(即,我可以在Xcode中看到的代码——也许这称为“用户”代码?基本上是非框架/库代码),但我不关心苹果的内部方法

我正在寻找在我(或我的前任)编写的每个方法和函数的第一行(或每一行)上设置断点的实用等效方法


是否有一些LLDB巫术可以做到这一点?

有一种简单的方法可以在所有模块的功能上设置断点,不包括任何其他共享库(苹果框架)的功能,假设您的产品/模块被称为“MyApp”,即:

breakpoint set -s MyApp -r .
但是,这将包括您静态链接到的任何库,这可能意味着您引入的任何库,因为应用商店中不允许动态链接

如果你倾向于给你的类加前缀,你可以通过只打断那些属于带有前缀的类的函数来缩小结果的范围。假设前缀为“MA”,则可以执行以下操作:

breakpoint set -s MyApp -r ^[^A-Za-z]*MA

这应该涵盖您的大部分代码。

回答得很好,谢谢。为了供其他人参考,
-s
将断点限制在共享库中,并且
-r
指示一个正则表达式以匹配要中断的函数。如果有忽略合成属性访问器的方法,则可获得主要的奖励点。