Xcode 4中没有外部库的符号/来源

时间:2012-10-15 12:43:34

标签: ios xcode debugging xcode4

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

  • 如果我在库方法上“跳转到定义”,XCode会将我带到.h文件,但是说没有.cpp对应
  • 调试时,我看不到源代码,并且库中缺少大部分调用堆栈: enter image description here
  • 我确保“在调试时显示反汇编”是UNchecked

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

为了澄清,我的应用程序项目没有维护对库项目的引用,只保留对.a文件和头文件的引用。这是因为库项目是由CMake创建的,我不想修改它。

1 个答案:

答案 0 :(得分:8)

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

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

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

您应该看到打印出一堆源(.m)文件路径。从理论上讲,当你停在调试器中时,这就是Xcode的样子,所以要确保这里的路径是正确的。如果您没有看到任何路径,则需要在构建库时将适当的调试标志(例如-g)传递给编译器。

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