如何在可执行文件附近而不是捆绑软件外部生成dsym文件,最好没有安装后脚本?

问题描述

我正在将LLVM Clang与Xcode一起使用,并且地址sanitiser没有创建file:line报告。我阅读了文档,并说要在启动应用程序之前对二进制文件运行dsymutil

http://clang.llvm.org/docs/AddressSanitizer.html#symbolizing-the-reports

我可以通过添加运行脚本构建阶段来实现,但这很笨拙。要对unix-makefile进行同样的处理,我认为最好使用install(SCRIPT <script.cmake>)

有没有一种方法可以避免所有这些并使Xcode在构建过程中运行dsymutil,可能是由于我不知道的构建设置?

我尝试将调试信息格式设置为dsym矮化,但是llvm-symbolizer不使用它。我猜这是dsymutil在可执行文件内部捆绑包附近创建了.dsym文件MyExec.dsym。当Xcode在捆绑包的{em>外部中创建它时:MyExec.app.dsym

解决方法

在Xcode的构建设置中,将调试格式从“ DWARF”更改为“带有dSYM的DWARF”。