地址杀毒软件不能在Windows上使用bash

目前在Windows上的Ubuntu Bash上运行llvm,clang,clang-format和clang-modernize。 我想使用由谷歌发布的消毒工具集,包括地址,内存和线程清理。 没有任何一个选项似乎可行。

这是ASAN的代码示例:

#include <stdlib.h> int main() { char *x = (char *)malloc(10 * sizeof(char *)); free(x); return x[5];// purposely accessing deallocated memory } 

这里是窗户上的砰砰声:

 $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) 

我很乐意就如何让它工作或如果我缺less工具链的一部分的build议。

如果没有,我想我会双启动的Ubuntu或Debian,因为铿锵的Windows缺less简单的function,如std:out支持,但理想情况下,我想能够编译Windows目标和Linux目标。 我想避免双启动,因为Ubuntu不能挂载Windows存储空间,但是它们似乎被很好的服务于Ubuntu bash。

快速查看源代码 – MemoryMappingLayout :: Next – https://llvm.org/svn/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_procmaps_linux.cc – 看来问题是, Windows上的ubuntu支持/ proc文件系统是不完整的。

失败的代码看着/ proc / self / maps – 实际上 – 看起来是正确的。

但是我发现/ proc中的其他东西(例如网络)完全在bashonwindowsonunix上被破解 – 所以我很确定这部分是一个正在进行的工作。