如何告诉 clang 将调试符号放入可执行二进制文件中?
How to tell clang to put debug symbol into executable binaries?
我的编译命令在 macOS Seria 是clang -std=c11 -g -Wall -Werror -fsanitize=address -file.c -o file
编译后,它还会生成一个额外的 file.dSYM 文件,其中包含所有调试符号。但是,当我使用 WSL 或其他 *nix 系统时,它不会生成这样的文件,调试符号被嵌入到可执行二进制文件中。
所以我只是想知道有没有办法在 macOS 中用 clang 做同样的事情。
当你一次编译一个程序时,clang
实际上会为你运行dsymutil
,它负责创建.dSYM
文件。因此,您的问题的解决方案是分别编译和 link,在这种情况下 clang
不会自动调用 dsymutil
.
查看 SO 问题了解更多详情!
我的编译命令在 macOS Seria 是clang -std=c11 -g -Wall -Werror -fsanitize=address -file.c -o file
编译后,它还会生成一个额外的 file.dSYM 文件,其中包含所有调试符号。但是,当我使用 WSL 或其他 *nix 系统时,它不会生成这样的文件,调试符号被嵌入到可执行二进制文件中。
所以我只是想知道有没有办法在 macOS 中用 clang 做同样的事情。
当你一次编译一个程序时,clang
实际上会为你运行dsymutil
,它负责创建.dSYM
文件。因此,您的问题的解决方案是分别编译和 link,在这种情况下 clang
不会自动调用 dsymutil
.
查看