如何在黑盒 Mac 应用程序使用的 Objc 框架中设置断点?
How to set breakpoints in a Objc framework that is used by a blackbox Mac application?
我想在从我的 Xcode 项目编译的 Objc framework
中设置断点,并让它打破依赖于我构建的框架的 Mac 应用程序。
比如Application
"Blackbox"会用到Framework
"A",而我只能访问"A"的源代码[=14] =]
因此我无法在框架项目中设置断点,只能将它们更改为用户,所有 Xcode 项目都可以访问。或者简单地合并这两个项目,因为我必须访问 "Blackbox".
如何让应用程序跳转到我在框架中设置的断点?
I want to set breakpoints in the Objc framework that is compiled from my Xcode project, and let it break the Mac application that is dependent on the framework I build.
断点由调试器管理;它们没有编译到您的框架中。您需要做的是首先设置您的 Mac 以便您可以将调试器 lldb 附加到您正在尝试处理的应用程序。为此,您可能需要先 so that the operating system won't block you from debugging the app. Then you'll need to a copy of the symbol file (it'll end in .dsym
) that you built when you built the framework, and you'll need to . The blog post Attaching sources to iOS/macOS binaries compiled on another machine 可能会帮助您完成这些步骤。
完成所有这些后,您应该能够在框架中的特定方法上设置断点,观察在逐步执行框架时会发生什么,等等。您将无法做的事情,除非您还可以获取应用程序本身的符号文件,就是在方法调用您的框架时查看应用程序的源代码 return 到应用程序。
我想在从我的 Xcode 项目编译的 Objc framework
中设置断点,并让它打破依赖于我构建的框架的 Mac 应用程序。
比如Application
"Blackbox"会用到Framework
"A",而我只能访问"A"的源代码[=14] =]
因此我无法在框架项目中设置断点,只能将它们更改为用户,所有 Xcode 项目都可以访问。或者简单地合并这两个项目,因为我必须访问 "Blackbox".
如何让应用程序跳转到我在框架中设置的断点?
I want to set breakpoints in the Objc framework that is compiled from my Xcode project, and let it break the Mac application that is dependent on the framework I build.
断点由调试器管理;它们没有编译到您的框架中。您需要做的是首先设置您的 Mac 以便您可以将调试器 lldb 附加到您正在尝试处理的应用程序。为此,您可能需要先 .dsym
) that you built when you built the framework, and you'll need to
完成所有这些后,您应该能够在框架中的特定方法上设置断点,观察在逐步执行框架时会发生什么,等等。您将无法做的事情,除非您还可以获取应用程序本身的符号文件,就是在方法调用您的框架时查看应用程序的源代码 return 到应用程序。