адресное дезинфицирующее средство не будет работать с bash на windows
В настоящее время работает на Ubuntu Bash в Windows, используя llvm, clang, clang-format и clang-modernize. Я хотел бы использовать набор инструментов для очистки, выпущенных Google, включая адрес, память и функцию очистки потока. Кажется, что ни один из параметров fsanitize не работает.
Вот пример кода для ASAN:
#include <stdlib.h>
int main() {
char *x = (char *)malloc(10 * sizeof(char *));
free(x);
return x[5];// purposely accessing deallocated memory
}
Вот вызов clang в bash для windows:
$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)
Мне бы очень хотелось посоветовать, как заставить его работать, или мне не хватает части цепочки инструментов или чего-то еще.
В противном случае я полагаю, что буду использовать двойную загрузку Ubuntu или Debian, потому что в Clang для Windows отсутствуют простые функции, такие как поддержка std: out, хотя в идеале я хотел бы иметь возможность компилировать как для целей Windows, так и для целей Linux. Я бы хотел избежать двойной загрузки, поскольку Ubuntu не может монтировать пространства хранения Windows, но они, похоже, достаточно хорошо подходят для Ubuntu bash на Windows.