我正在寻找Valgrind来帮助提高我的C编码/调试,当我发现它只适用于Linux时——我没有其他需要或兴趣将我的操作系统转移到Linux,所以我想知道是否有同样好的Windows程序。
当前回答
看看这个问题:有没有好的Valgrind可以替代Windows?. 虽然提出了valgrind的通用替代品,但它主要讨论内存泄漏检测器,而不是竞态条件检测。
其他回答
Clang支持地址消毒插件(-faddress-sanitizer选项),它几乎可以检测到Valgrind可以发现的大多数错误(不支持检测未初始化的内存读取和内存泄漏)。请参阅本页与Valgrind和其他类似工具的比较。一个正式的Windows端口目前正在进行中,请参阅Windows ASan端口。
几个月前,我尝试自己在Windows上构建它,但放弃了,请看我的相关问题。如果你想再试一次,事情可能已经变得更好了。
免费工具DebugDiag将帮助查找内存并处理内存泄漏。
为了使DebugDiag工作,您不需要对程序进行配置。
http://www.microsoft.com/downloads/details.aspx?FamilyID=28BD5941-C458-46F1-B24D-F60151D875A3&displaylang=en
虽然它不是最简单或最直观的程序使用!确保你谷歌的教程和说明如何使用它。
所有分析器或多或少都包括检查内存泄漏,并在分配内存时显示堆栈。
我可以推荐英特尔并行检查器。使用简单,不需要重新编译。试运行期为30天。
GlowCode和AtromatedQA也包含这样的功能。他们都提供免费试用。
Compuware DevPartner(又名BoundsChecker)在对比中需要慢速的“仪器”重新编译,应用程序在检查错误时也会运行得更慢。和BoundsChecker不能工作与64位evsrions在所有。我们放弃了那个工具。
我曾经有机会使用Compuware DevPartner Studio,那真的很好,但它相当昂贵。 一个更便宜的解决方案可以是GlowCode,我刚刚与一个5。X版本,尽管在附加到我需要调试的进程时出现了一些问题,但它运行得很好。
如果你不害怕mingw,这里有一些链接(一些可能适用于MSVC)… http://betterlogic.com/roger/?p=1140
推荐文章
- 使用C返回一个数组
- 我如何找到哪个程序正在使用端口80在Windows?
- 在Windows中有像GREP这样的模式匹配实用程序吗?
- $destroy是否删除事件监听器?
- 如何在Windows命令提示符下运行.sh ?
- 如何为KnockoutJS调试模板绑定错误?
- 为什么pthreads的条件变量函数需要互斥?
- 如何在构建目标之外生成gcc调试符号?
- 如何从命令行在windows中找到mysql数据目录
- __FILE__宏显示完整路径
- 开关语句:必须默认为最后一种情况?
- 调试器是如何工作的?
- 逗号运算符是做什么的?
- 在没有事件源注册的情况下写入Windows应用程序事件日志
- 在内存的哪里我的变量存储在C?