c - Windows 是否有一个好的 Valgrind 替代品?

标签 c windows debugging memory-leaks valgrind

<分区>

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

最佳答案

正如 jakobengblom2 所指出的,valgrind 有一套工具。根据您所谈论的是哪一个,有不同的窗口计数器部件。我这里只提OSS或者免费工具。

<强>1。内存检查:

博士。内存。这是一个相对较新的工具,在 Windows 7 上运行良好。我最喜欢的功能是它将报告中的相同泄漏分配堆栈分组。

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

我也使用过 UMDH( http://support.microsoft.com/kb/268343 ),发现它非常有用且易于设置。从 Win2000 到 Win7 都可以。

AppVerifier 是 Windows 原生代码开发人员必备的 swissknife,它的“内存”检查器做类似的工作 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 性能分析工具是 Microsoft 免费提供的,使用起来不是很方便,但如果您愿意花时间,也可以完成工作。 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。地 block :

Windows 上类似(不是完全匹配)的免费工具有:

来自 sysinternals 的 VMMap:http://technet.microsoft.com/en-us/sysinternals/dd535533

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

<强>4。缓存研磨:

上面提到的 Windows Performance Tools 具有一定级别的 L2 缓存未命中分析功能,但不如 Cachegrind 好用。

<强>5。研发部:

还没有在 Windows 上找到任何免费和强大的东西,我能找到的唯一一个稍微接近的 Windows 免费工具是“锁定”检查器 应用程序验证器: http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx

关于c - Windows 是否有一个好的 Valgrind 替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/413477/

相关文章:

.net - TimeSpan.FromSeconds(-1.0) 和 double.NaN

c - 在 C 中使用算术移位运算符执行逻辑移位

c - 访问冲突,内存集

c - 在 32 位系统上使用 libevent 提供大文件 (>2GB)

c++ - 我可以根据系统文件中某处的不同系统加载默认 Windows 图标吗

c# - VSPackage 中的 OnEnterRunMode 不起作用

c - realloc() 如何工作?

c++ - “… already defined in *.obj”,但我没有在同一范围内两次定义任何变量

c# - 在 C# 中将 Windows 键用于其他目的

debugging - intellij 2016 在使用现有源启动新的 gradle 项目时挂起