Il mio intento è quello di utilizzare Clang
in sostituzione di Valgrind
su Windows per trovare buffer overflow, uso improprio della memoria dinamica ecc. Nei programmi C/C++ che ho scritto. Ho creato Clang con successo seguendo le istruzioni fornite here.Clang con -faddress-sanitizer su Windows
ho tentato di compilare un semplice programma C con l'opzione -faddress-disinfettante (come specificato here) ed il successivo è gettato l'errore -
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)
Perché clang (se ho capito bene) invocare GCC ? Ovviamente GCC non supporta l'opzione -faddress-sanitizer.
Sono davvero entusiasta della possibilità di utilizzare questo come ho cercato di trovare un buon sostituto (gratuito) per Valgrind per un po '. Qualcuno può aiutarmi per favore?
Il link non funziona più. –
Ho corretto il collegamento ora per puntare a https: // github.com/google/disinfettanti/wiki/AddressSanitizerWindowsPort – milianw