我们有一个相当大的(和旧的)项目,我们需要调试一个库中的C ++函数,这个函数已经很久没有被触及了(你问64位要求?你怎么猜?)
但我们得到的只是汇编代码。
有问题的图书馆是由一些古老的CMake wizzardry建造的,这使事情变得更加复杂。
我当前的主要问题是:如果dsymutil --symtab没有列出任何内容,那是否意味着.a文件中没有调试信息? 或者是否有另一种万无一失的方法来确定是否实际生成了DWARF调试信息?
我在问,因为在我创建的静态库的示例项目中,我在.o文件中看到了一个symtab,但是在生成的.a文件中没有。
答案 0 :(得分:1)
事实证明,dsymutil在静态库中不能很好地工作(或者根本不能)。
使用ar -x提取.o文件,然后在它们上使用dsymutil似乎有效,从而解决了我的问题