如何告诉clang将调试符号放入可执行的二进制文件?

时间:2017-03-31 15:32:56

标签: c++ c macos clang llvm

我的编译命令在macOS中是Seria clang -std=c11 -g -Wall -Werror -fsanitize=address -file.c -o file 在编译之后,它还会生成一个额外的file.dSYM文件,其中包含所有调试sybols。但是,当我使用WSL或其他* nix系统时,它不会生成这样的文件,调试符号被嵌入到可执行二进制文件中。 所以我只是想知道有没有办法在macOS中用clang做同样的事情。

1 个答案:

答案 0 :(得分:4)

当您在一次传递中编译程序时,clang实际上为您运行dsymutil,它负责创建.dSYM文件。因此,您的问题的解决方案是单独编译和链接,在这种情况下,clang不会自动调用dsymutil

检查this SO问题以获取更多详情!