現在、WindowsのUbuntu Bashでllvm、clang、clang-format、clang-modernizeを実行しています。私はアドレス、メモリ、およびスレッドの消毒を含むGoogleによってリリースされたサニタイズツールのセットを使用したいと思います。 fsanitizeオプションのどれも動作していないようです。ここでアドレス墨塗りはウィンドウ上のbashでは機能しません
はASANのためのサンプルコードです:
#include <stdlib.h>
int main() {
char *x = (char *)malloc(10 * sizeof(char *));
free(x);
return x[5];// purposely accessing deallocated memory
}
ここでは、Windows上のbashで打ち鳴らすコールさ:
$clang++-3.5 -fsanitize=address -o1 -fno-omit-frame-pointer -g main.cpp -o main
$./main
結果
==70==Sanitizer CHECK failed: build/buildd/llvm-toolchain-snapshot-3.5/projects/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc:211 ((IsOneOf(*current_, 's', 'p'))) != (0)(0,0)
私は上の愛の提案をいただきたいですどのように働かせるか、あるいは私がツールチェーンや何かの一部を欠いている場合。
Windows用のclangにstd:outサポートのような単純な機能がないため、WindowsターゲットとLinuxターゲットの両方をコンパイルできるようにしたいので、私はUbuntuまたはDebianをデュアルブートすると思います。 UbuntuはWindowsのストレージスペースをマウントできないため、デュアルブートは避けたいのですが、Windows上のUbuntu bashにはうまくいきます。