我的应用程序没有看到库的源代码:
- 如果我在库方法上“跳转到定义”,XCode 会将我带到 .h 文件,但说没有 .cpp 对应项
- When debugging, I see no source code and most of the call-stack is missing for the library:
- 我已确保“调试时显示反汇编”未选中
我将库构建为 DEBUG,然后将 headers+.a 文件打包到 SDK 目录中。所以我想我需要将调试文件也复制到该 SDK 目录中,或者告诉我的应用程序在哪里查找。我也不知道该怎么做。
需要澄清的是,我的应用程序项目不维护对库项目的引用,仅维护对 .a 文件和标头目录的引用。这是因为库项目是由 CMake 创建的,我不想修改它。
首先,您应该检查静态库的 .debug_str 部分,以验证它包含适当的调试信息。
尝试在终端上运行此命令:
xcrun dwarfdump /path/to/library.a | grep "\.m"
您应该会看到打印出一堆源 (.m) 文件路径。理论上,这是当您在调试器中停止时 Xcode 将查看的位置,因此请确保此处的路径正确。如果您没有看到任何路径,则需要传递适当的调试标志(例如-g
构建库时交给编译器。
如果路径在某种程度上不正确,或者您想将它们指向其他位置,您可以在 CMake 中的构建过程中修改它们,例如使它们相对于您的项目目录。尝试看看“让 gcc 将相对文件名放入调试信息中 https://stackoverflow.com/questions/9607155/make-gcc-put-relative-filenames-in-debug-information”,它使用 CMake 来调整这些调试路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)