是否有一个良好的Valgrind的替代品用于Windows?(Is there a good Val

2019-07-20 09:43发布

我一直在寻找到Valgrind的,有助于提高我的C编码/调试时,我发现这是仅适用于Linux - 我在我的操作系统转向Linux,所以我在想,如果有一个用于Windows的同样好的程序中没有其他的需要或兴趣。

Answer 1:

一些更良好的商业工具:

  • 净化
  • 保证++


Answer 2:

作为jakobengblom2指出,有Valgrind的工具套装。 根据哪一个你正在谈论有不同的窗口柜台的部分。 我只提OSS或免费工具在这里。

1. MEMCHECK:

内存博士。 这是一个相对较新的工具,效果很好在Windows 7上我最喜欢的特点是,它集团在报告相同泄漏分配栈。

http://code.google.com/p/drmemory/

我也用UMDH( http://support.microsoft.com/kb/268343 ),发现它安静有用的,易于安装。 它从Win2000的工程Win7的。

AppVerifier的是一个必须有swissknife用于Windows本地代码开发者,它的“记忆”检查程序类似的工作http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx

2. Callgrind:

我最喜欢的是verysleepy( http://www.codersnotes.com/sleepy )是微小的,但非常有用的,易于使用。

如果你需要更多的功能,AMD CodeAnalyst™性能分析器是免费的: http://developer.amd.com/documentation/videos/pages/introductiontoamdcodeanalystperformanceanalyzer.aspx

Windows性能分析工具是免费的微软,不是很容易使用,但可以把工作做好,如果你愿意花时间。 http://blogs.microsoft.co.il/blogs/sasha/archive/2008/03/15/xperf-windows-performance-toolkit.aspx下载: http://msdn.microsoft.com/en-us/performance / cc752957

3.地块:

类似的(不太精确匹配)在Windows的免费工具有:

从的VMMap Sysinternals的: http://technet.microsoft.com/en-us/sysinternals/dd535533

!在WinDbg中堆命令: http://hacksoflife.blogspot.com/2009/06/heap-debugging-memoryresource-leak-with.html

4.缓存研磨:

上面提到的Windows性能工具有一定的水平L2高速缓存未命中分析能力,但不太好和容易Cachegrind使用。

5 DRD:

有没有发现什么自由和强大的Windows上,然而对于窗户的唯一免费工具,我可以发现,稍微接近于在AppVerifier的“锁定”检查: http://msdn.microsoft.com/en-us/library /dd371695%28v=vs.85%29.aspx



Answer 3:

为什么不使用Valgrind的+酒调试您的Windows应用程序? 见http://wiki.winehq.org/Wine_and_Valgrind

(铬使用它来检查Windows版本的内存错误;见build.chromium.org,并期待在实验或内存的瀑布,并搜索葡萄酒)

也有记忆博士,看到dynamorio.org/drmemory.html



Answer 4:

对于Visual C ++,尝试视觉检漏仪 。 当我用它,它检测到来自内存泄漏new呼叫并返回在泄漏的源代码的实际线路。 最新版本可以在这里找到http://vld.codeplex.com/ 。



Answer 5:

对于Windows您使用的是可能包含它自己的工具的开发环境。 Visual Studio中,例如,让您检测和隔离内存泄漏在你的程序



Answer 6:

我想列出一些常用的工具,希望将是有益的

阅读这篇文章更多的细节

  1. 净化
  2. 边界检查
  3. Coverity的(基本上其代码分析器但是,它会赶上在静态存储器泄漏)
  4. 夜光代码
  5. dmalloc
  6. ccmalloc
  7. NJAMD
  8. YAMD
  9. Valgrind的
  10. mpatrol
  11. 保证++


Answer 7:

尝试杜玛



Answer 8:

目前的调试工具的Windows Pageheap.exe在部分。 它是免费的,基本上是一个自定义的内存分配器/释放。

见http://support.microsoft.com/kb/286470



Answer 9:

在使用Visual Studio组合我一般用视觉检漏仪或干脆_CrtDumpMemoryLeaks(),这是一个Win32 API调用。 两者都没有什么花哨,但他们把工作做好。



Answer 10:

我不得不使用的机会Compuware公司DevPartner工作室在过去,这是非常好的,但它是相当昂贵的。 一个便宜的解决办法是GlowCode ,我只是一个5.x版工作,尽管在连接到一个进程,我需要调试的一些问题,它的工作相当不错。



Answer 11:

我已经爱内存验证 ,从一个叫软件验证的公司。



Answer 12:

Viusual Studio可以帮助检测内存泄漏本身。 请参阅微软的Visual C ++技巧和诀窍 - >“内存泄漏”一节。 也看到这个帖子在SO

虽然真正的跟踪是唯一可能与Visual Studio的团队Edtion。



Answer 13:

请参阅“ 源测试工具软件QA测试和测试工具的资源页面上的类似工具列表”链接。

我用的BoundsChecker,DevPartner Studio和英特尔V-调过去的分析。 我喜欢V-Tune的最好的; 你可以模仿各种英特尔芯片组,它将给你如何来优化该平台的提示。



Answer 14:

是否约亨Kalmbach的内存泄漏检测资格吗?

PS:本网址到最新版本在文章的评论线程的地方埋葬。



Answer 15:

LeakDiag,UMDH,应用验证,DebugDiag资料,是提高代码的健壮性和查找内存泄漏的有用工具。



Answer 16:

升压测试库可以检测内存泄漏。



Answer 17:

怎么样的净化 ?



Answer 18:

尝试英特尔督察XE产品,它可以帮助您检测内存和线程问题: http://software.intel.com/en-us/articles/intel-inspector-xe/



Answer 19:

也许CodeSnitch将是你后的东西吗? http://www.entrek.com/codesnitch.html



Answer 20:

如果你正在使用Borland / CodeGear的/ Embarcadero的C ++ Builder中开发的,你可以使用了CodeGuard。



Answer 21:

都或多或少廓线包括检查内存泄漏,并显示您的堆栈分配内存时。

我可以推荐英特尔Parallel Inspector中 。 使用简单,无需重新编译需要。 试用版30天运行一次。

GlowCode和AtromatedQA还包括这样的capabilites。 他们都提供免费试用。

Compuware公司DevPartner(又名的BoundsChecker):与需要放慢“仪器”重新编译应用程序也检查错误时运行速度较慢。 和的BoundsChecker不能在所有64个evsrions工作。 我们放弃了这个工具。



Answer 22:

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



Answer 23:

另一种记忆的工具列表: 内存验证 。

不是免费的,但远不及作为净化或的BoundsChecker昂贵。



Answer 24:

如果你不害怕的MinGW的,这里有一些链接(有些人可能会用MSVC工作)... http://betterlogic.com/roger/?p=1140



Answer 25:

我们只是完成了内存的安全检查工具适用于Windows,它处理GCC和项目建立在微软的Visual C(不是C ++还),并正在寻找Beta测试。

编辑2011年6月12日:不是beta了,现在生产GCC和Microsoft Visual Studio C.



Answer 26:

我今天发现这个SF项目:

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

他们的valgrind移植到Windows。 大概在几年我们就可以在Windows上可靠的valgrind。



Answer 27:

看看这个问题: 是否有一个良好的Valgrind的替代品用于Windows? 。 虽然对于一般Valgrind的替代品被要求,主要讨论了内存泄漏探测器,而不是竞争条件检测。



Answer 28:

我曾经投保++这确实非常出色找到C ++内存泄漏/损坏等诸多蝽象未初始化的变量,指针错误,字符串等,它也做视觉上的“代码覆盖率”和运行时内存的使用情况等。这给更多的自信你的代码..你可以尝试为试用版..



Answer 29:

你可能想读什么的Mozilla 正在做关于内存泄漏。 在其工具箱的一个工具是用作汉斯贝姆垃圾收集器内存泄漏检测器。



Answer 30:

你可以给一个尝试RuntimeChecker审判加时赛IBM净化试验..

免费的解决方案是使用Visual Studio中的以下代码:

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

就在所有的cpp文件的顶部写这篇文章。 这会检测你的应用程序的内存泄漏whenc停止调试运行,并在输出窗口中列出。 在内存泄漏线双击将higlight你在哪里内存分配和永远不会释放行。 这可以帮助你: http://www.flipcode.com/archives/How_To_Find_Memory_Leaks.shtml



文章来源: Is there a good Valgrind substitute for Windows?