窗户上的时尚消毒液叮当作响
Clang with -faddress-sanitizer on Windows
我的意图是在Windows上使用Clang
来代替Valgrind
,以查找我编写的C/C++程序中的缓冲区溢出、动态内存滥用等。我已经按照这里提供的说明成功地构建了Clang。
我试图用-faddress-splizer选项编译一个简单的C程序(如这里所指定的),然后抛出以下错误-
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)
为什么clang(据我所知)会调用GCC?当然GCC不支持-时尚消毒液选项。
我真的很兴奋有可能使用这个,因为我一直在努力寻找一个好的(免费的)替代品来代替瓦尔格里德一段时间了。有人能帮忙吗?
AddressSanitizer如今在Windows上的工作效果要好得多(但仍有一些工作在进行中)。上有一些文档https://github.com/google/sanitizers/wiki/AddressSanitizerWindowsPort
谷歌搜索把我带到了这个页面。
引用
支持AddressSanitizer
- Linux x86_64(在Ubuntu 10.04上测试)
- MacOS 10.6和10.7(i386/x86_64)
对Linux i386/ARM的支持正在进行中(它可能工作,但不能保证)。
关于替代的话题,你看过记忆博士吗?
相关文章:
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- SDL_LockTexture() / 地址消毒液 / 双免
- 哪些叮当作响的检查提供了自动修复
- Visual Studio 2017中的哪些扩展在传入lambda时消除了"bool"与"std::function"的歧义?
- 以编程方式构建一个叮当作响的AST
- 依赖名称的模板消歧器
- 在C++中检测意外的消隐维度
- 窗户上的时尚消毒液叮当作响
- 部分专业化消歧优先链的更好模式
- 高斯消去码
- 使用高斯消去法从文本文件中求逆矩阵.C++
- 线循环的背面消隐
- C/C++OpenGL遮挡消隐
- 矩阵的行列式通过高斯消去C++
- 当只能在运行时将基类向下转换为子类时,消除了c++虚函数
- 错误:' template '(作为消歧器)只允许在模板中使用
- 一次执行后,嵌套for循环出现意外/未见的中断:高斯消去
- 库消除了为MySQL创建查询的需要
- c++术语消歧
- c++中的Gauss-Jordan消去法