Mục đích của tôi là sử dụng Clang
để thay thế cho Valgrind
trên Windows để tìm tràn bộ nhớ, sử dụng sai bộ nhớ động vv trong các chương trình C/C++ mà tôi đã viết. Tôi đã xây dựng thành công Clang theo các hướng dẫn được cung cấp here.Clang with -faddress-sanitizer trên Windows
Tôi đã cố gắng để biên dịch một chương trình C đơn giản với tùy chọn -faddress-khử trùng (theo quy định here) và sau khi lỗi được ném -
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)
Tại sao Clang (như tôi hiểu nó) gọi GCC ? Tất nhiên GCC không hỗ trợ tùy chọn -faddress-sanitizer.
Tôi thực sự vui mừng trước khả năng sử dụng điều này vì tôi đã cố gắng tìm một giải pháp thay thế (miễn phí) tốt cho Valgrind trong một thời gian. Ai đó có thể giúp đỡ?
Liên kết không hoạt động nữa. –
Tôi đã sửa liên kết ngay bây giờ để trỏ đến https: // github.com/google/sanitizers/wiki/AddressSanitizerWindowsPort – milianw