如何使用Xcode调试dylib?

时间:2011-01-18 02:58:46

标签: xcode debugging xcodebuild dynamic-library

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

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

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

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

ADDED

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

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

  2. 使用Xcode调试库 - Debugging a library with Xcode

  3. 在iPhone应用程序中轻松实现模块化代码共享:静态库和跨项目参考 - http://www.clintharris.net/2009/iphone-app-shared-libraries/

2 个答案:

答案 0 :(得分:5)

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

构建

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

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

    调试

    您需要设置arith / usearith的断点。 您可以在arith中运行调试器,并使用步骤调试arith项目中的代码。

答案 1 :(得分:2)

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

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

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