有 Windows 的良好 Valgrind 替代品吗?

2023-12-21

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


正如 jakob engblom 2 指出的那样,valgrind 有一套工具。根据您所讨论的窗口类型,有不同的窗口对应部件。我在这里只提到OSS或免费工具。

1.内存检查:

记忆博士。它是一个相对较新的工具,在 Windows 7 上运行得很好。我最喜欢的功能是它在报告中对相同泄漏的分配堆栈进行分组。

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

我也用过 UMDH(http://support.microsoft.com/kb/268343 http://support.microsoft.com/kb/268343)并发现它非常有用且易于设置。它适用于Win2000到Win7。

AppVerifier 是 Windows 原生代码开发人员必备的工具,它的“内存”检查器可以完成类似的工作http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx

2. 呼叫研磨:

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

如果您需要更多功能,AMD CodeAnalyst™性能分析器是免费的:http://developer.amd.com/documentation/videos/pages/introductiontoamdcodeanalystperformanceanalyzer.aspx 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://blogs.microsoft.co.il/blogs/sasha/archive/2008/03/15/xperf-windows-performance-toolkit.aspx下载:http://msdn.microsoft.com/en-us/performance/cc752957 http://msdn.microsoft.com/en-us/performance/cc752957

3. 地块:

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

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

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

4.缓存研磨:

上面提到的 Windows 性能工具具有一定水平的 L2 缓存未命中分析功能,但不如 Cachegrind 那么好和易于使用。

5. DRD:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有 Windows 的良好 Valgrind 替代品吗? 的相关文章

  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • ClojureScript 中的 js/console.log

    我想用 ClojureScript 实现一个函数来简化js console log像这样 defn log args apply js console log args 调用它 log foo bar 抛出 TypeError Illega
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • phoenix 框架 - 新套接字处的参数无效 - windows

    我无法运行新的 Phoenix 应用程序 这是我收到的错误 我不确定原因是什么 我尝试更改端口 但这并没有改变行为 另外 我似乎能够正确运行节点 Compiled web views error view ex Compiled web c
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个
  • 当另一个线程可能设置共享布尔标志(最多一次)时,是否可以读取共享布尔标志而不锁定它?

    我希望我的线程能够更优雅地关闭 因此我尝试实现一个简单的信号机制 我不认为我想要一个完全事件驱动的线程 所以我有一个工作人员有一种方法可以使用关键部分优雅地停止它Monitor 相当于C lock我相信 绘图线程 h class Drawi
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub

随机推荐

  • 在 Python 中将 ASCII 代码列表转换为字符串(字节数组)

    我有一个整数 ASCII 值列表 需要将其转换为字符串 二进制 以用作加密操作的密钥 我正在用python重新实现java加密代码 这是可行的 假设密钥是 8 字节 key struct pack BBBBBBBB 17 24 121 1
  • 如何在Linux上列出非空子目录?

    我有一个包含多个子目录的目录 我只想列出那些至少包含一个文件的子目录 我怎样才能做到这一点 find mindepth 1 maxdepth 1 not empty type d 将为您提供所有非空目录 如果您想排除仅包含其他目录 但不包含
  • 抽象类返回

    抱歉 如果这是一件小事 我创建了一个带有一些子类的抽象类 控制器类创建请求子类类型的抽象类类型的对象 并返回实现的抽象类 子类具有特定的属性 我无法访问返回对象的这些属性 因为这是抽象类默认类型 所以我尝试进行转换 但这会出现错误 item
  • 在 Heroku 上运行 Rails 单元测试

    我已经将一个应用程序部署到 Heroku 一切正常 问题是我无法远程运行单元测试 我试过了 heroku rake test units and heroku rake db test prepare 但对于两者 我都得到了大量的堆栈跟踪
  • 重命名远程分支

    我创建了一个本地分支 X 在某个时候我将其推送到远程服务器 来源 git push origin X 我意识到将分支命名为 X 并希望将其命名为 Y 是一个坏主意 问题是我已经将分支推送到存储库 从服务器中删除它并以这样的新名称推送它是否安
  • 在 Marshmallow 上不会调用 Spannable String 的绘制方法

    我的应用程序中有一个日历 日历是一个带有每个日期按钮的 GridView 我尝试用下面的课程给它们上色 public class CircleSpan extends ReplacementSpan private final float
  • 在 ActionBar 中获取 Switch 实例

    我设法在操作栏内放置了一个开关 如 Wi Fi 设置中一样 我把以下内容主菜单 xml menu 文件夹内的文件 menu menu
  • 保存和重用 SPARQL 查询的结果

    我正在使用 Jena 通过 Eclipse 查询 owl 文件 我想做一些连续的查询 每个新查询都将使用前一个查询的结果 我想在不同的 SELECT 中执行此操作 并每次保存查询结果 以便在新查询中再次使用它 我不想自己插入变量的值 而是从
  • JDialog 取消按钮

    如何在 Swing 中设置取消按钮JDialog 即如果用户按下键盘上的 取消 键 其操作会自动执行的按钮 通过以下方式向对方提供默认操作setDefaultButton对话框根窗格的方法 如果这有帮助 我正在寻找 WinForms 的类似
  • d3js在地图上强制布局

    我正在尝试在地图上放置一个力布局节点系统 某些节点在我使用的 json 文件中具有 lon 和 lat 值 其他节点只需连接 无需地理参考 我想将具有 lon 和 lat 值的节点放置在适当的位置 而其他节点只是为了连接 我发现了我遵循的这
  • Sqlalchemy 无法在事务块内运行

    我正在尝试从 python 脚本在 redshift 中运行查询 但出现错误 sqlalchemy exc InternalError psycopg2 InternalError ALTER EXTERNAL TABLE cannot r
  • 使用 childRouter 时的 Durandal 路由器/生命周期事件

    在使用 Durandal 构建的单页应用程序中 我有一个设置视图 其中包含不同的部分 我使用 childRouter 来解析不同的部分 在此应用程序中 许多代码挂钩到 Durandal 使用的组合生命周期事件 例如 这个自定义绑定 ko b
  • 如何引发 Shutil.SameFileError?

    我正在努力提高一个shutil SameFileError用于单元测试但未能成功 问题是没有引发错误 import unittest class TestErrors unittest TestCase Unit testing of er
  • 如果未通过单元测试,如何拒绝来自本地存储库的原始存储库的 git 推送?

    我有一个拥有完全访问权限的原始存储库 并且我不希望将代码成功推送到此存储库 除非正在推送的代码成功通过了我的单元测试 我看到了许多 git hooks update 脚本的示例 它们似乎分为几个不适合我的用例的类别 例如 在 http gi
  • 检测 Windows Phone (7.1) 中的捏合缩放

    根据 Silverlight 工具包 手势侦听器将被视为已弃用 对于所有 Windows Phone 7 1 SDK 开发 应将手势侦听器视为已弃用 并且没有其他可用的建议 在没有手势侦听器的情况下 在 WP7 中检测捏合 缩放手势的最佳方
  • ADO.NET 2.0 Interbase 驱动程序和 ASP.NET 错误的程序集引用?

    我正在寻找超过 12 个小时来找到针对这个特定问题的正确解决方案 我有一个利用 Interbase XE 数据库的 ASP MVC NET Framework 4 5 应用程序 只要我在自己的机器上本地运行就可以正常工作 但是 当我尝试将站
  • 禁用 docker-compose 项目的自动启动

    我有一个使用 Docker for Mac 的 docker compose 项目 它会在我启动计算机时自动启动 我通常以以下方式开始项目docker compose up d 但即使是跑步docker compose stop在关闭自动启
  • 如何使用 pngBitmapEncoder 保存图像

    根据图像编码示例here http msdn microsoft com en us library ms748873 aspx imageformats我应该能够使用png位图编码器 http msdn microsoft com en
  • 使用 C++ lambda 进行部分应用?

    编辑 我在下面使用咖喱 但已被告知这是部分应用 我一直在试图弄清楚如何用 C 编写柯里函数 而且我实际上已经弄清楚了 include
  • 有 Windows 的良好 Valgrind 替代品吗?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 当我发现 Valgrind 仅适用于 Linux 时 我正在研究 Valgrind 来帮助改进