9

我的应用程序没有看到库的源代码:

  • 如果我在库方法上“跳转到定义”,XCode 会将我带到 .h 文件,但说没有 .cpp 对应项
  • 调试时,我看不到源代码,并且该库缺少大部分调用堆栈: 在此处输入图像描述
  • 我已确保未选中“调试时显示反汇编”

我将库构建为 DEBUG,然后将 headers+.a 文件打包到 SDK 目录中。所以我想我也需要将调试文件复制到该 SDK 目录中,或者告诉我的应用程序在哪里查找。我也不知道该怎么做。

澄清一下,我的应用程序项目不维护对库项目的引用,仅对 .a 文件和标头目录进行引用。这是因为库项目是由 CMake 创建的,我不想修改它。

4

1 回答 1

10

首先,您应该检查静态库的 .debug_str 部分以验证它是否包含适当的调试信息。

尝试在终端上运行此命令:

xcrun dwarfdump /path/to/library.a | grep "\.m"

您应该会看到打印出一堆源 (.m) 文件路径。从理论上讲,当您在调试器中停止时,Xcode 会在此处查看,因此请确保此处的路径正确。如果您没有看到任何路径,则需要传递适当的调试标志(例如-g,在构建库时传递给编译器。

如果路径不正确,或者您想将它们指向其他位置,您可以在 CMake 中将它们作为构建过程的一部分进行修改,例如使它们相对于您的项目目录。尝试查看“ Make gcc put relative filenames in debug information ”,它使用 CMake 来调整这些调试路径。

于 2012-10-18T15:52:12.427 回答