6

我有一个用于库 arith 的 Xcode 项目。我可以用调试配置构建它,我需要调试它。我怎样才能做到这一点?

理想的方法是设置测试代码以在项目文件中构建执行,然后在 arith 库的源代码中设置断点。

但是,似乎 Xcode arith 项目不允许添加另一个使用 arith 库的 use_arith 项目。

人们使用什么方法在 Xcode 中调试动态库?

添加

我用谷歌搜索并找到了一些调试 dll 的方法。附加到正在运行的进程可能是调试动态库的一种方式。并且,对于 iPhone/iPad 编程动态库是不允许的,所以使用静态库。

  1. 附加到正在运行的进程 - http://gcc.gnu.org/onlinedocs/gnat_ugn_unw/Attaching-to-a-Running-Process.html

  2. 使用 Xcode调试库 - 使用 Xcode 调试库

  3. 跨 iPhone 应用程序轻松、模块化的代码共享:静态库和跨项目引用 - http://www.clintharris.net/2009/iphone-app-shared-libraries/

4

2 回答 2

5

我可以找到一种在 Xcode 中调试动态库的方法。

建造

  1. 做一个图书馆,我把这个叫做 arith 图书馆。调试构建以制作 libarith.dylib。
  2. 制作一个使用该库的项目,我将其命名为 usearith。
  3. 对于 userarith,Project->Add To Project,然后添加 arith 库。
  4. 打开项目信息,然后打开构建选项卡。
  5. 转到搜索路径/库搜索路径,拖放 arith 库。您应该删除库名称,因为您只需要指定路径。使用“标题搜索路径”指定标题目录。
  6. 转到链接,设置其他链接器标志,添加 -larith

跑步

现在,您应该能够将执行二进制文件链接到库。运行时,需要将动态库复制到执行二进制文件所在的目录下。

调试

您需要同时设置 arith/usearith 的断点。您可以在 arith 中运行调试器并使用 step into 来调试 arith 项目中的代码。

于 2011-01-18T20:15:17.310 回答
3

我遇到了同样的问题,之前的答案没有一个适用于我的案例,所以我分享了我的解决方案(对于 Xcode):

如果您需要调试由外部(可执行)程序加载的 ac/c++ dylib:

  1. 首先确保你的 dylib 是用与你的外部程序相同的架构构建的。
  2. 然后转到-->产品->方案->编辑方案
  3. 转到 Tab Run(Debug) 并选中 "Debug Executable" ,然后在下拉按钮中选择您的外部程序作为可执行文件。然后勾选“自动启动”
  4. 此外,如果您的程序需要额外的参数,您可以将其添加到“参数”选项卡中。
  5. 最后你给你的c源文件设置了一些断点,最后点击运行。
于 2016-02-26T00:19:22.877 回答