我正在使用带有Xcode的LLVM Clang,地址清理器没有创建file:line报告。我阅读了文档,上面写着在启动应用程序之前在二进制文件上运行dsymutil
。
http://clang.llvm.org/docs/AddressSanitizer.html#symbolizing-报告
我可以通过添加运行脚本构建阶段来实现这一点,但它很笨重。为了对unix makefile进行同样的操作,我认为install(SCRIPT <script.cmake>)
会更好。
有没有办法避免这一切,让Xcode在构建过程中运行dsymutil
,可能是通过我不知道的构建设置?
我试着用dsym将调试信息格式设置为dwarf,但llvm symbolizer没有使用它。我想区别在于dsymutil在可执行文件附近创建了.dsym文件,在捆绑包内:MyExec.dsym
。当Xcode在捆绑包外创建它时:MyExec.app.dsym
。
在Xcode中的构建设置中,将调试格式从";DWARF";至";具有dSYM的DWARF";。