Clang有各种消毒剂,可以打开以在运行时发现问题。
但是,有些消毒剂我不能一起使用。这是为什么?
clang++-3.9 -std=c++1z -g -fsanitize=memory -fsanitize=address -o main main.cpp 1
clang: error: invalid argument '-fsanitize=address' not allowed with '-fsanitize=memory'
这没什么大不了的,但是当我运行单元测试时,它需要的时间比它应该的要长,因为我为相同的测试创建了多个二进制文件,并分别运行它们中的每一个。
clang++-3.9 -std=c++1z -g -fsanitize=address -o test1 test.cpp
clang++-3.9 -std=c++1z -g -fsanitize=memory -fsanitize=undefined -o test2 test.cpp