Clang с дезинфицирующим средством для дезинфекции в Windows

Я намерен использовать Clang для замены Valgrind в Windows, чтобы найти переполнение буфера, неправильное использование динамической памяти и т.д. в программах на 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-sanitizer.

Я очень рад возможности использовать это, поскольку я пытался найти хорошую (бесплатную) замену Valgrind на некоторое время. Кто-нибудь может помочь?

Ответ 2

Googling привел меня к этой странице.

Чтобы процитировать,

AddressSanitizer поддерживается на

  • Linux x86_64 (протестирован на Ubuntu 10.04).
  • MacOS 10.6 и 10.7 (i386/x86_64).

Поддержка Linux i386/ARM выполняется (может работать, но также не гарантируется).


На тему замены вы посмотрели Dr. памяти?