问题描述
我正在将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”。