Is there a good Valgrind substitute for Windows?

当我发现它仅用于Linux时,我正在考虑Valgrind来帮助改进我的C编码/调试 - 我没有其他需要或有兴趣将我的操作系统迁移到Linux,所以我想知道是否有一个同样适用于Windows的程序。


Some more good commercial tools:

  • Purify
  • Insure++

  • As jakobengblom2 pointed out, valgrind has a suit of tools. Depending which one you are talking about there are different windows counter parts. I will only mention OSS or free tools here.

    1. MemCheck:

    Dr. Memory. It is a relatively new tool, works very well on Windows 7. My favorite feature is that it groups the same leaks' allocation stacks in the report.

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

    I have also used UMDH( http://support.microsoft.com/kb/268343 ) and found it quiet useful and easy to setup. It works from Win2000 to Win7.

    AppVerifier is a must have swissknife for windows native code developers, its "memory" checker does similar job http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx

    2. Callgrind:

    My favorite is verysleepy ( http://www.codersnotes.com/sleepy ) It is tiny but very useful and easy to use.

    If you need more features, AMD CodeAnalyst™ Performance Analyzer is free: http://developer.amd.com/documentation/videos/pages/introductiontoamdcodeanalystperformanceanalyzer.aspx

    Windows Performance Analysis tools is free from Microsoft, not very easy to use but can get the job done if you are willing to spend the time. http://blogs.microsoft.co.il/blogs/sasha/archive/2008/03/15/xperf-windows-performance-toolkit.aspx Download: http://msdn.microsoft.com/en-us/performance/cc752957

    3. Massif:

    Similar(not quite exact match) free tools on windows are:

    VMMap from sysinternals : http://technet.microsoft.com/en-us/sysinternals/dd535533

    !heap command in windbg : http://hacksoflife.blogspot.com/2009/06/heap-debugging-memoryresource-leak-with.html

    4. Cachegrind:

    Above mentioned Windows Performance Tools has certain level of L2 cache miss profiling capability but not quite as good and easy to use as Cachegrind.

    5. DRD:

    Haven't found anything free and as powerful on Windows yet, the only free tool for windows I can find that is slightly close is the "lock" checker in AppVerifier: http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx


    Why not use Valgrind + Wine to debug your Windows app? See http://wiki.winehq.org/Wine_and_Valgrind

    (Chromium uses this to check the Windows version for memory errors; see build.chromium.org and look at the experimental or memory waterfalls, and search for wine.)

    There's also Dr. Memory, see dynamorio.org/drmemory.html

    链接地址: http://www.djcxy.com/p/57030.html

    上一篇: 什么策略和工具对于在.NET中查找内存泄漏很有用?

    下一篇: 是否有良好的Valgrind替代Windows?