我想在从我的Xcode项目编译的Objc framework中设置断点,让它中断依赖于我构建的框架的Mac应用程序。例如,Application“Blackbox”将使用Framework“A”,而我只能访问“A”的源代码。因此,我不能在框架项目中设置断点,并简单地将其更改为User,这将对所有Xcode项目都是可访问的。或者简单地合并这两个项目,因为我必须访问“Blackbox”。如何打破应用程序跳转到断点我设置在我的框架?
framework
Application
Framework
dba5bblo1#
我想在从我的Xcode项目编译的Objc框架中设置断点,让它中断依赖于我构建的框架的Mac应用程序。断点由调试器管理;它们不会编译到你的框架中。你需要做的是首先设置你的Mac,这样你就可以附加调试器,lldb,为了做到这一点,你可能需要先disable System Integrity Protection,这样操作系统就不会阻止你调试应用程序。然后你需要一个符号文件的副本(它将以.dsym结尾),并且您将需要load it into the debugger。博客文章Attaching sources to iOS/macOS binaries compiled on another machine可能会帮助您完成这些步骤。一旦你完成了所有这些,你应该能够在你的框架中的特定方法上设置断点,观察当你逐步通过框架时会发生什么,等等。除非你也能获得应用程序本身的符号文件,否则你将无法做的是当方法调用到你的框架返回到应用程序时看到应用程序的源代码。
.dsym
7rtdyuoh2#
我能够在Mac OS X 10.4.11上的Xcode 2.5中通过以下步骤完成这一点:
Build设置(项目信息-> Build)
1.**安装信息表单:**DWARF,带dSYM文件1.**单独PCH符号:**未选中1.**生成验证码:**已勾选1.**验证码级别:**完整1.**剥离调试符号:**未选中
1.运行开发生成1.将构建的框架符号链接到My.app/Contents/Frameworks/文件夹:
My.app/Contents/Frameworks/
ln -s /Users/you/MyFramework/build/Development/My.framework /Applications/My.app/Contents/Frameworks/My.framework
字符串
可执行设置
1.选择项目->新建自定义可执行文件...1.使用向导添加/Applications/My.app我知道了1.在框架中设置断点1.选择Build -> Build and Build1.享受调试
/Applications/My.app
2条答案
按热度按时间dba5bblo1#
我想在从我的Xcode项目编译的Objc框架中设置断点,让它中断依赖于我构建的框架的Mac应用程序。
断点由调试器管理;它们不会编译到你的框架中。你需要做的是首先设置你的Mac,这样你就可以附加调试器,lldb,为了做到这一点,你可能需要先disable System Integrity Protection,这样操作系统就不会阻止你调试应用程序。然后你需要一个符号文件的副本(它将以
.dsym
结尾),并且您将需要load it into the debugger。博客文章Attaching sources to iOS/macOS binaries compiled on another machine可能会帮助您完成这些步骤。一旦你完成了所有这些,你应该能够在你的框架中的特定方法上设置断点,观察当你逐步通过框架时会发生什么,等等。除非你也能获得应用程序本身的符号文件,否则你将无法做的是当方法调用到你的框架返回到应用程序时看到应用程序的源代码。
7rtdyuoh2#
我能够在Mac OS X 10.4.11上的Xcode 2.5中通过以下步骤完成这一点:
Build设置(项目信息-> Build)
1.**安装信息表单:**DWARF,带dSYM文件
1.**单独PCH符号:**未选中
1.**生成验证码:**已勾选
1.**验证码级别:**完整
1.**剥离调试符号:**未选中
初始构建和框架链接
1.运行开发生成
1.将构建的框架符号链接到
My.app/Contents/Frameworks/
文件夹:字符串
可执行设置
1.选择项目->新建自定义可执行文件...
1.使用向导添加
/Applications/My.app
我知道了
1.在框架中设置断点
1.选择Build -> Build and Build
1.享受调试