Я намерен использовать Clang
в качестве замены Valgrind
в Windows для обнаружения переполнения буфера, неправильного использования динамической памяти и т. д. в программах на C/C++, которые я написал. Я успешно собрал Clang, следуя инструкциям здесь .
Я попытался скомпилировать простую программу на C с параметром -faddress -sanitizer (, как указано здесь)и выдается следующая ошибка-
gcc.exe: error: unrecognized command line option '-faddress-sanitizer'
Using built-in specs.
COLLECT_GCC=C:/MinGW/bin/gcc.exe
Target: mingw32
Configured with:../gcc-4.7.0/configure --enable-languages=c,c++,ada,fortran,objc,obj- c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgomp --disable-win32-registry --enable-libstdcxx-debug --disable-build-poststage1-with-cxx --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw
Thread model: win32
gcc version 4.7.0 (GCC)
clang: error: assembler (via gcc) command failed with exit code 1 (use -v to see invocation)
Почему clang (, насколько я понимаю, )вызывает GCC? Конечно, GCC не поддерживает опцию дезинфицирующего средства -faddress -.
Я действительно взволнован возможностью использовать это, так как некоторое время пытался найти хорошую (бесплатную )замену Valgrind. Может кто-нибудь помочь?