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

Mr.*_*Boy 9 debugging xcode ios xcode4

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

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

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

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

Mik*_*ler 9

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

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

xcrun dwarfdump /path/to/library.a | grep "\.m"
Run Code Online (Sandbox Code Playgroud)

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

如果路径在某种程度上不正确,或者您想将它们指向其他位置,您可以将它们作为CMake中构建过程的一部分进行修改,例如使它们相对于您的项目目录.尝试查看" 使gcc在调试信息中放置相对文件名 ",它使用CMake调整这些调试路径.