11

我正在解开意大利面条代码,作为一个练习,我正在从应用程序启动开始浏览应用程序,然后继续applicationDidFinishLaunching前进并进入。

当第一个方法返回时,我会分解成程序集。知道什么时候跨过去,什么时候跨进去是一件很痛苦的事。我希望调试器暂停所有符号化代码(即我可以在 Xcode 中看到的代码 - 也许这被称为“用户”代码?基本上,非框架/库代码。),但我不关心 Apple 的内部方法。

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

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

4

1 回答 1

8

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

breakpoint set -s MyApp -r .

但是,这包括您静态链接到的任何库,这可能意味着您引入的任何库,因为 App Store 中不允许动态链接。

如果您倾向于为您的类添加前缀,您可以通过仅中断作为具有该前缀的类的一部分的函数来缩小结果范围。假设您的前缀是“MA”,您可以执行以下操作:

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

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

于 2013-02-25T22:05:13.010 回答