查找内存最后被释放的位置?

2023-12-06

非常一般:当发生访问冲突时,是否有一种简单的方法可以判断哪一行代码最后释放了内存块?

不太一般:我对探查器的理解是它们会覆盖分配和释放过程。如果这是真的,他们是否会碰巧存储最后释放一段内存的代码行,以便当它稍后因访问冲突而崩溃时,您知道最后释放它的是什么?

规格:Windows、ANSI C、使用 Visual Studio


Yes!

安装Windows 调试工具并使用应用验证器.

  1. 文件 -> 添加应用程序,选择您的 .exe
  2. 在“基础”下,选择“内存和堆”。
  3. 在 ntsd 下运行程序的调试版本 (ntsd yourprogram.exe)。
  4. 重现该错误。

现在,当您发生崩溃时,您将在调试器中从 AppVerifier 获得更多信息。使用!avrf(可能需要很长时间才能运行(分钟)),它会尝试为您提供尽可能多的有用信息。

您都可以在内存地址上使用 dps 命令来获取所有存储的堆栈信息(分配、释放等)。

您还可以对内存地址使用 !heap 命令:

0:004> !heap -p -a 0x0C46CFE0

这也会转储信息。

进一步阅读:

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

查找内存最后被释放的位置? 的相关文章

随机推荐

  • 将未知数量的字段输入到 mysql - 最佳结构?

    我需要存储从多个表单发送的数据 有趣的是 因为这些表单将由我计划向用户提供访问权限的表单生成器创建 我不知道表单中有多少个字段 或者用户将提交多少个字段 我考虑过类似于以下的表结构 表单本身保存为php以进行包含 FormId FormTy
  • 在asp.net core 1.0中创建RSS feed

    我正在 Asp net Core 1 0 MVC 6 工作 我正在尝试编写一个组件来从我的网站提供 RSS 提要 I found 这个帖子这表明 System ServiceModel Syndicate 尚未移植到 ASP NET COR
  • 正则表达式:如何匹配 RFC1918 私有 IPV4 地址范围中的 IP 地址(在 Python 中)?

    RFC1918 将私有 IPv4 地址定义为属于以下任意范围的地址 10 0 0 0 10 255 255 255 172 16 0 0 172 31 255 255 192 168 0 0 192 168 255 255 出于分析目的 我
  • Java Swing:所有 UIDefaults 属性的列表

    问题 在哪里可以获得 Swing 中存在的所有 UIDefaults 属性的列表 我知道可以编写一小段代码来提取并显示它们 但我想知道通过这种方式获得的列表是否真的完整 当我这样做时 我获得了 Metal L F 的 636 个属性 Win
  • 在notifyDataSetChanged后焦点发生变化之前,ListView不会显示更改

    我有一个AlertDialog with a ListView设置为多选就可以了 它还有一个Button on it The Button打开另一个AlertDialog如果确定 将从数据集中删除所选项目ListView 然后告诉列表视图的
  • 循环 VBScript

    我正在尝试运行 VBScript 检查时间 直到到达 22 00 晚上 10 点 然后运行shutdown bat 我总是收到诸如 loop without do 之类的错误 任何人都可以查看我的代码并看看是否有办法修复它 Do If Ho
  • 创建并使用自定义 HTML 组件?

    我有以下本地 html
  • C# 设置项目获取单选按钮值

    我已经开始使用 Visual Studio 中的安装项目为我的应用程序创建安装程序 我制作了带有两个单选按钮的用户界面 There it is what i m talking about 我想在 C 中访问这些单选按钮的值 但我完全不知道
  • 在不同线程上同时打开多个SQLite数据库实例(QT)

    从不同线程同时使用多个打开的连接是否有问题 据我所知 默认情况下它是线程安全的 但是 这会损害性能而不是提高性能吗 拥有多个连接不是问题 唯一要记住的是 SQLite 不支持多个写入事务的并发 来自 SQlitesite SQLite 支持
  • 在 Swift 中上传带有参数的图像

    我正在尝试在 Swift 中上传带有参数的图像 当我尝试这段代码时 我可以获取参数 但不能获取图像 uploadFileToUrl foti o UIImage var foto UIImage data UIImageJPEGRepres
  • Docker 管道的“内部”在 Docker 容器内运行的 Jenkins 从属设备中不起作用

    我在使用 Jenkins 管道脚本运行时遇到问题 该脚本使用 Docker Pipeline 插件在 Docker 容器中运行部分构建 Jenkins 服务器和从属服务器本身都在 Docker 容器内运行 Setup 在 Docker 容器
  • python 未执行,代码在页面中显示为文字

    在 ubuntu 12 04 中我有这个基本的 http 服务器 python m SimpleHTTPServer 还有这个文件 demo py usr bin python2 7 print Content Type text html
  • jquery 在回调内部使用 this 访问对象上下文

    让我们假设我定义了以下对象 var myObj function this hello Hello myObj prototype sayHello function var persons Jim Joe Doe John each pe
  • PHP 检测 SQL 注入尝试

    我的代码已经安全了 在 SQL 查询中使用参数 但是 我想检测是否有人attempts将某些内容注入到提交表单中 我找到了 Snort 但我需要 PHP 脚本级别的东西 而不是整个网络 这是一个包含学生个人信息的网站 因此 我们将警告 甚至
  • jQuery 淡入淡出 div 在设定的时间间隔内

    我想淡出集合中的第一个 div 然后淡入下一个 div 淡入淡出将在设定的时间触发 集合中的项目数为 1 到 n 这是 html 的示例 div class contentPanel div class content div style
  • 填补 OpenCV 中的漏洞[重复]

    这个问题在这里已经有答案了 我有一个从边缘检测模块中提取的边缘图OpenCV 精明的边缘检测 我想做的是填补边缘图中的漏洞 我在用C and OpenCV图书馆 在OpenCV中有一个cvFloodFill 函数 它将用种子填充孔 以及开始
  • 带有 ASP.Net 的新 Google Recaptcha

    我正在尝试获取新的谷歌验证码在我的 ASP NET 项目中工作 我在使其成为新项目 我不是机器人 时遇到问题 我在那里有旧的 在对developers google com网站进行了大量研究之后 一切看起来都一样 他们甚至向我指出了相同的d
  • Binding 与 x:Bind、使用 StaticResource 作为默认值以及它们在 DataContext 中的差异

    我花了大半天的时间试图制作ItemTemplate of a ListView with a UserControl可通过以下方式配置DependencyProperty上说UserControl 我遇到了关于这两种不同的一些奇怪的不一致之
  • Google+ android API PlusClient writeMoment 不执行任何操作

    为了在 Android 应用程序中实现社交功能 我尝试使用 PlusClient 类的 writeMoment 方法 但没有任何反应 我能够与 PlusClient 成功连接 并使用我的应用程序编写深层链接帖子 这是我打开 Google 连
  • 查找内存最后被释放的位置?

    非常一般 当发生访问冲突时 是否有一种简单的方法可以判断哪一行代码最后释放了内存块 不太一般 我对探查器的理解是它们会覆盖分配和释放过程 如果这是真的 他们是否会碰巧存储最后释放一段内存的代码行 以便当它稍后因访问冲突而崩溃时 您知道最后释