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

问题描述 投票:0回答:2

我想在从我的 Xcode 项目编译的 Objc

framework
中设置断点,并让它中断依赖于我构建的框架的 Mac 应用程序。

例如,

Application
“Blackbox”将使用
Framework
“A”,而我只能访问“A”的源代码。

因此,我无法在框架项目中设置断点,只需将其更改为“User”,所有 Xcode 项目都可以访问该断点。或者简单地合并这两个项目,因为我必须访问“Blackbox”。

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

objective-c xcode frameworks breakpoints
2个回答
1
投票

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

断点由调试器管理;它们没有编译到您的框架中。您需要做的是首先设置您的 Mac,以便可以将调试器 lldb 连接到您要处理的应用程序。为此,您可能需要首先禁用系统完整性保护,以便操作系统不会阻止您调试应用程序。然后,您需要构建框架时构建的符号文件的副本(以

.dsym
结尾),并且需要 将其加载到调试器中。博客文章将源代码附加到在另一台计算机上编译的 iOS/macOS 二进制文件可能会帮助您完成这些步骤。

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


0
投票

我能够按照以下步骤在 Mac OS X 10.4.11 上的 Xcode 2.5 中完成此操作:

构建设置(项目信息 -> 构建)

  1. 调试信息表:带有dSYM文件的DWARF
  2. 单独的 PCH 符号:未选中
  3. 生成调试符号:选中
  4. 调试符号级别:完整
  5. 剥离调试符号:未选中

注意:可能并非所有这些选项都是必需的。

初始构建和框架链接

  1. 运行开发构建
  2. 将构建的框架符号链接到
    My.app/Contents/Frameworks/
    文件夹中:
ln -s /Users/you/MyFramework/build/Development/My.framework /Applications/My.app/Contents/Frameworks/My.framework

可执行设置

  1. 选择项目 -> 新建自定义可执行文件...
  2. 使用向导添加
    /Applications/My.app

调试

  1. 在框架中设置断点
  2. 选择构建->构建和调试
  3. 享受调试的乐趣
© www.soinside.com 2019 - 2024. All rights reserved.