为什么Xcode不会为静态库生成dSYM文件?

14

我尝试使用"DWARF with dSYM file"格式编译库并获取调试符号。这对于动态库有效,但对于静态库无效。

XCode“快速帮助”中指出:“不需要为静态库或对象文件产品创建dSYM文件。”[dwarf-with-dsym],有人能解释一下为什么吗?

谢谢


你在这里找到什么了吗?@Igor - vishalv2050
@vishalv2050 不,我没有。 - Igor
我已经回答并添加了同样的答案。谢谢。 - vishalv2050
1个回答

27
我偶然发现这篇文章,希望能对它进行一些解释。
由于静态库不是真正的可执行文件,因此它仍然包含其中的符号。因此,当该库被另一个应用程序使用时,将会有一个包含应用程序符号和静态框架符号的 dSYM,而没有任何意义。
另一方面,动态框架本身就是一个可执行文件,即已准备好加载到应用程序中并已经链接。因此,您库中的所有符号已经转换为机器代码,但是还有一个 dSYM 包含您符号的映射。
为像我这样的可怜人添加了这个,如果需要进一步解释,请让我知道。

我完全同意你的观点。有没有一种方法可以验证静态库中的符号是否已正确传输到应用程序的dSYM中?我尝试使用“dwarfdump”来解决这个问题,但是我无法解决... - mfaani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接