我正在寻找Valgrind来帮助提高我的C编码/调试,当我发现它只适用于Linux时——我没有其他需要或兴趣将我的操作系统转移到Linux,所以我想知道是否有同样好的Windows程序。


当前回答

Clang支持地址消毒插件(-faddress-sanitizer选项),它几乎可以检测到Valgrind可以发现的大多数错误(不支持检测未初始化的内存读取和内存泄漏)。请参阅本页与Valgrind和其他类似工具的比较。一个正式的Windows端口目前正在进行中,请参阅Windows ASan端口。

几个月前,我尝试自己在Windows上构建它,但放弃了,请看我的相关问题。如果你想再试一次,事情可能已经变得更好了。

其他回答

Jochen Kalmbach的内存泄漏检测器合格吗?

注:最新版本的URL隐藏在文章的评论线程的某个地方。

看看这个问题:有没有好的Valgrind可以替代Windows?. 虽然提出了valgrind的通用替代品,但它主要讨论内存泄漏检测器,而不是竞态条件检测。

我今天发现了这个SF项目:

http://sourceforge.net/p/valgrind4win/wiki/Home/

他们正在将valgrind移植到Windows。也许几年后,我们的窗户就会有可靠的耐磨材料了。

试试Intel的Inspector XE产品,它可以帮助您检测内存和线程问题:http://software.intel.com/en-us/articles/intel-inspector-xe/

我用过的最好的工具是DevPartner BoundsChecker——它不是免费的,但它有一个评估期。