我正在寻找Valgrind来帮助提高我的C编码/调试,当我发现它只适用于Linux时——我没有其他需要或兴趣将我的操作系统转移到Linux,所以我想知道是否有同样好的Windows程序。
当前回答
Clang支持地址消毒插件(-faddress-sanitizer选项),它几乎可以检测到Valgrind可以发现的大多数错误(不支持检测未初始化的内存读取和内存泄漏)。请参阅本页与Valgrind和其他类似工具的比较。一个正式的Windows端口目前正在进行中,请参阅Windows ASan端口。
几个月前,我尝试自己在Windows上构建它,但放弃了,请看我的相关问题。如果你想再试一次,事情可能已经变得更好了。
其他回答
我们正在完成一个用于Windows的内存安全检查工具,它可以处理GCC和microsoft Visual C(还不是c++),正在寻找Beta测试人员。
2011年6月12日:不再是Beta版,现在是GCC和Microsoft Visual Studio C的产品版。
你可以参考《Game Programming Gems 8》中的文章《游戏内内存分析器的设计与实现》。
它展示了如何实现一个低开销的半侵入式实时内存分析器,源代码在CD-ROM中提供。
也许CodeSnitch是你想要的?http://www.entrek.com/codesnitch.html
我一直很喜欢Memory Validator,它来自一家名为Software Verification的公司。
我想列举一些工具,希望对大家有用
阅读这篇文章了解更多细节
净化 边界检查 Coverity(基本上它是一个代码分析器,但它会捕捉静态内存泄漏) 发光的代码 dmalloc ccmalloc NJAMD YAMD Valgrind mpatrol 确保+ +
推荐文章
- 使用C返回一个数组
- 我如何找到哪个程序正在使用端口80在Windows?
- 在Windows中有像GREP这样的模式匹配实用程序吗?
- $destroy是否删除事件监听器?
- 如何在Windows命令提示符下运行.sh ?
- 如何为KnockoutJS调试模板绑定错误?
- 为什么pthreads的条件变量函数需要互斥?
- 如何在构建目标之外生成gcc调试符号?
- 如何从命令行在windows中找到mysql数据目录
- __FILE__宏显示完整路径
- 开关语句:必须默认为最后一种情况?
- 调试器是如何工作的?
- 逗号运算符是做什么的?
- 在没有事件源注册的情况下写入Windows应用程序事件日志
- 在内存的哪里我的变量存储在C?