如何在黑盒 Mac 应用程序使用的 Objc 框架中设置断点?



我想在从我的 Xcode 项目编译的 Objcframework中设置断点,并让它破坏依赖于我构建的框架的 Mac 应用程序。

例如,Application"黑匣子"将使用Framework"A",而我只能访问"A"的源代码。

因此,我无法在框架项目中设置断点并简单地将它们更改为 User,所有 Xcode 项目都可以访问它。或者简单地合并这两个项目,因为我必须访问"黑匣子"。

如何中断应用程序以跳转到我在框架中设置的断点?

我想

在从我的 Xcode 项目编译的 Objc 框架中设置断点,并让它破坏依赖于我构建的框架的 Mac 应用程序。

断点由调试器管理;它们不会编译到框架中。您需要做的是首先设置 Mac,以便您可以将调试器 lldb 附加到您尝试使用的应用程序。为此,您可能需要首先禁用系统完整性保护,以便操作系统不会阻止您调试应用程序。然后,需要复制在生成框架时生成的符号文件(以.dsym结尾),并且需要将其加载到调试器中。博客文章将源代码附加到在另一台计算机上编译的 iOS/macOS 二进制文件可能会帮助你完成这些步骤。

完成所有这些操作后,您应该能够在框架中的特定方法上设置断点,观察单步执行框架时会发生什么,等等。除非还可以获取应用程序本身的符号文件,否则无法执行的操作是在框架中的方法调用返回到应用时查看应用的源代码。

最新更新