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

6kkfgxo0  于 2023-11-21  发布在  Mac
关注(0)|答案(2)|浏览(172)

我想在从我的Xcode项目编译的Objc framework中设置断点,让它中断依赖于我构建的框架的Mac应用程序。
例如,Application“Blackbox”将使用Framework“A”,而我只能访问“A”的源代码。
因此,我不能在框架项目中设置断点,并简单地将其更改为User,这将对所有Xcode项目都是可访问的。或者简单地合并这两个项目,因为我必须访问“Blackbox”。
如何打破应用程序跳转到断点我设置在我的框架?

dba5bblo

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可能会帮助您完成这些步骤。
一旦你完成了所有这些,你应该能够在你的框架中的特定方法上设置断点,观察当你逐步通过框架时会发生什么,等等。除非你也能获得应用程序本身的符号文件,否则你将无法做的是当方法调用到你的框架返回到应用程序时看到应用程序的源代码。

7rtdyuoh

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/文件夹:

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 Build
1.享受调试

相关问题