Clang Mac OS X Maveric,不支持fsanitize = undefined

时间:2013-12-19 10:14:18

标签: macos clang

我在我的C程序中遇到了一个段错误,我认为我会使用Clangs来帮助弄清楚原因,因为Valgrind还不支持(还)。

我尝试使用-fsanitize = undefined编译我的程序,以激活对未定义行为的运行时检查。所有我得到的是一条错误消息,其内容如下:“fsanitize不支持选项'undefined'”。我也尝试使用-fsanitize = address,结果相同:/

任何人都知道这是为什么?

1 个答案:

答案 0 :(得分:1)

苹果公司的CLang似乎不支持-fsanitize。 如果你去http://llvm.org/releases/download.html#3.4,你可以获得clang的prebuild二进制文件,它确实能识别这个选项。

然而这更难,因为那时你必须使用Makefile, 如果您偶然使用cmake,那么您可以轻松地使用makefile。

OR 替换Xcode.app/Contents/Developer/Toolchains/.../bin中的二进制文件 我不知道如果您更换Apples二进制文件会发生什么,请先进行备份才能恢复。

老实说,我对替换苹果的二进制文件并不是很自负,因为它们可能会在clang中添加一些东西以使其与Xcode很好地协同工作。 同样,海湾合作委员会的GPL政策具有苹果无法修改的优势。

- >另一种解决方案是在linux上开发,

CLang的窗口正在运行,但尚未准备好,可能是3.5。

最佳