Clang con -faddress-sanitizer en Windows
Mi intención es usarClang
como un reemplazo paraValgrind
en Windows para encontrar desbordamientos de búfer, mal uso de memoria dinámica, etc. en los programas C / C ++ que he escrito. He construido con éxito Clang siguiendo las instrucciones proporcionadasaquí.
Intenté compilar un programa C simple con la opción -faddress-sanitizer (como se especificóaquí) y lo siguiente se produce el error -
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)
¿Por qué clang (como yo lo entiendo) está invocando GCC? Por supuesto, GCC no admite la opción -faddress-sanitizer.
Estoy realmente entusiasmado con la posibilidad de usar esto, ya que he estado tratando de encontrar un buen sustituto (gratuito) para Valgrind por un tiempo. ¿Puede ayudarme alguien, por favor?