【问题标题】:dSYM Directories While Compiling C++ Code in MacOS在 MacOS 中编译 C++ 代码时的 dSYM 目录
【发布时间】:2010-10-09 17:56:55
【问题描述】:

为什么在 Mac 中编译 C++ 总是创建 *.dSYM 目录? 有没有办法禁用它?

【问题讨论】:

    标签: c++ macos compiler-construction debug-symbols


    【解决方案1】:

    我假设您使用 Xcode。转到“项目”/“编辑项目设置”菜单项,单击构建选项卡,在“GCC 4.0 - 代码生成”部分下,取消选中生成调试符号。您可以在搜索栏中输入“sym”来帮助找到它。

    【讨论】:

      【解决方案2】:

      这是因为您的 Xcode 项目设置为使用外部 dSYM 文件构建调试符号。这实际上对于发布版本非常方便,因为这意味着您可以从应用程序中删除调试符号,并且当用户向您发送故障转储时,您可以使用原始 dSYM 文件生成适当的堆栈跟踪以进行调试。

      无论如何,您不需要在您的项目中禁用调试符号生成。相反,只需将调试符号类型更改为 DWARF(而不是“带有 dSYM 文件的 DWARF”)。您也可以使用 Stabs,但这是旧格式。

      编辑:啊,我看到你的意思是从命令行,而不是从 Xcode。我不是坐在我的 mac atm 前面,但我从 gcc4 manpage 看到,您可以指定 -gstabs 以使用 Stabs 格式。

      【讨论】:

      • 嗨,你如何更改调试符号?有命令行吗?
      • 有趣的怪癖:在 MacOS 10.6.2 上,如果您在“链接”行中包含源文件,则运行 dsymutil 程序以生成 .dSYM 信息;如果您只链接目标文件和库,则不会运行 dsymutil 程序,因此不会生成 .dSYM 信息。您可以使用 GCC 的“-v”选项来验证这一点,该选项显示由“gcc”执行的程序。
      • 你也可以使用-ggdb,如果你打算使用gdb进行调试,我认为它可以提供比stabs更多的功能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 2019-01-04
      相关资源
      最近更新 更多