_CrtCheckMemory使用示例

2024-05-22

我试图了解如何使用_CrtCheckMemory追踪我正在开发的 Windows 应用程序中的堆损坏。我似乎无法让它返回false。这是我的测试代码:

int* test = new int[1];
for(int i = 0; i < 100; i++){
    test[i] = 1;
}
assert( _CrtCheckMemory( ) );

在上面的代码中,_CrtCheckMemory( )返回真。我正在调试模式下运行。为了得到一个简单的例子,我还需要做什么_CrtCheckMemory标记问题?


需要一个额外的步骤,你必须说服编译器替换默认的new带有调试分配器的运算符。只有调试分配器会创建“无人区”区域来检测堆块的欠写或覆盖。这是有风险的,使用原始分配器编译的代码将无法与不是的代码很好地混合。因此,它迫使您明确选择加入。

最好在预编译头文件(默认情况下为 stdafx.h)中完成,这样您就可以确定all代码使用调试分配器。像这样:

#ifdef _DEBUG
#  define _CRTDBG_MAP_ALLOC
#  define _CRTDBG_MAP_ALLOC_NEW
#  include <crtdbg.h>
#  include <assert.h>
#endif

CRTDBG 宏获取 malloc() 函数和new运营商被替换。

请注意,您发布的代码将首先触发另一个诊断。在 Windows Vista 及更高版本上,Windows 堆分配器将首先抱怨,因为代码破坏了 Windows 堆完整性。通过只索引最多 2 个,使覆盖变得更微妙。

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

_CrtCheckMemory使用示例 的相关文章

  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 如何使用命令行压缩文件?

    我想使用批处理文件命令 Windows XP 批处理文件 压缩目录 例如 如果我想解压缩一个文件意味着我可以使用jar xf file zip java bat 文件命令 就像我想要一个命令行批处理来压缩目录一样 如果您使用的是 Ubunt
  • 本地推送通知到在应用程序内运行 JS 代码的 Win8 Live Tile

    我正在尝试将更新发送到我的应用程序的磁贴 当应用程序运行时 这可以正常工作 例如 当用户单击按钮时 我可以轻松地将磁贴更新通知发送到磁贴 我无法解决的是当应用程序无法运行时如何更新磁贴 我找到的唯一选择是使用以下命令从远程 Web 服务器拉
  • 自定义波特率,redux

    我遇到的问题详述如下自定义波特率 https stackoverflow com questions 7714060 custom baud rate SetCommState 波特率 921600 失败 但波特率 115200 成功 尽管
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 使用 Makefile 项目在 Visual Studio 中自定义调试命令

    我在 Visual Studio 2010 中有一个由 Makefile 支持的项目 实际上使用 NAnt 但这不是重点 构建过程的输出是一个 elf 文件 我有一个单独的非 VStudio 调试器 可以在该 elf 文件上运行来调试它 构
  • 不在焦点时响应键盘? (C#、Vista)

    我正在尝试编写一个应用程序 只要按下 Shift 键 无论当前哪个应用程序具有焦点 它都会做出响应 我尝试过这个SetWindowsHookEx 与GetKeyboardState 但这两种方法仅在应用程序窗口具有焦点时才有效 我需要它在全
  • 将 CrashDumps 转储到应用程序运行所在的同一文件夹中

    我编写了一个应用程序 我希望对其进行一定程度的自动调试 我想使用 Windows 错误报告将故障转储输出到应用程序运行所在的同一文件夹中 我的想法是 我可以让我的应用程序在它自己的文件夹中查找任何 dmp 文件 然后根据需要上传它们进行分析
  • SetCurrentDirectoryW 中的错误 206

    在我之后之前不清楚的问题 https stackoverflow com questions 44389617 long path name in setcurrentdirectoryw 我以某种方式能够创建一个具有长路径名的目录 但是
  • PHP 拒绝从 var_dump、print 等输出数据

    我目前正在运行 WAMP 服务器 并且在过去的 30 分钟内一直在尝试弄清楚我的项目如何以及为什么不会输出任何指定的 PHP 数据 起初我以为是因为我有一个 htaccess文件的output buffering被禁用 所以我删除了它 仍然
  • Windows 操作系统中 ST_INO(os.stat() 输出)的含义

    谁能告诉我这个值的含义是什么st ino是跑步时os stat 在 Windows 上 Python 3 5 3 在早期的 Python 版本中 它包含虚拟值 但最近发生了变化 我找不到它是如何计算 生成的 我怀疑它因文件系统 NTFS F
  • 如何向未知用户目录读取/写入文件?

    我正在尝试从用户目录 C Users USERNAME Test Source 读取和写入文件 但我未能成功找到任何有关如何自动检测用户名的资源 其中的 USERNAME上面的例子 或者无论如何 我可以让它读取和写入目录 而不需要知道用户名
  • 如何从 Android 应用程序调试共享库 [单独的项目]

    我正在开发一个 Android 应用程序并在项目中使用密集的 C 代码 首先 我将c 源代码放入项目中 并使用以下指南在Android应用程序中具有本机调试的NDK功能 http tools android com recent using
  • Windows 中的蓝牙 AVRCP 命令会触发哪些事件

    可以这么说 只是在做一些高级侦察 对于我的潘多拉客户 Elpis http elpis adamhaile net 我支持全局媒体键 键盘上的 MediaPlayPause MediaNext 等 并且我希望能够支持AVRCP http e
  • 当我启动 Windows 命令提示符时,我做了什么导致环境变量发生更改?

    我使用的是 Windows 10 x64 我安装了 Anaconda3 如果我启动 C Windows system32 cmd exe 时没有运行任何其他内容 并且在我可以看到的后台中没有任何有趣的内容 则以下内容将添加到控制面板 UI
  • 在 Intellij-Idea 调试器中转储一个巨大的数组

    Idea 有没有办法将一个非常大的整数数组的内容转储到剪贴板中 数组上的 复制值 不返回任何内容 要使用复制值获取剪贴板中的值 您需要定义一个 Java 数据类型渲染器 来解释数组的内容 右键单击您的数组变量 选择 查看为 gt 创建 在
  • 将 kinit 与 keytab 文件一起使用时会发生什么

    希望对kinit和keytab文件的使用有更多的了解 例如 如果我已经为某个服务生成了一个密钥表文件 该服务通过以下方式注册到活动目录 ktpass mapuser to someuseraccount ktab k mykeytab a
  • 将 value 转换为 bool 的魔法

    今天我意识到将值转换为 bool 是一种魔法 int value 0x100 unsigned char uc static cast
  • SetWindowsHookEx 函数返回 NULL

    我正在研究 DLL 注入 但收到错误如下 挂接进程失败 87 参数不正确 目标进程和dll都是64位的 注入代码为 BOOL HookInjection TCHAR target TCHAR dll name https msdn micr
  • 为什么 Windows 命令 DIR 在搜索 *.tif 文件时也会输出 *.tiff 文件?

    我想使用 Windows 命令DIR为了找到唯一TIF文件 即具有扩展名的文件 tif 因此我使用以下小批处理文件 for f delims a IN dir b a d s C wolter testversion input tif d

随机推荐

  • 检查SQS队列是否为空的有效方法

    我有一个SQS Queue多个主机从中读取消息 我想在处理队列中的所有消息后运行一些作业 业务逻辑 如何检查队列是否为空 是的 我可以检查ApproximateNumberOfMessages and ApproximateNumberOf
  • 比较 jdbc 中的结果集

    在我的java代码中 我获得了两个结果集rs1和rs2 如下所示 rs1 statement executeQuery select from tableA rs2 statement executeQuery select from ta
  • 如何使用 C# 了解 Excel 中的分页符 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 C 创建并格式化 Excel 电子表格 因此我需要格式化 合并单元格 更改字体等 直到第一页的最后 如何知道 Excel 电子
  • 关于*多键*外连接的默认/填充值

    注意 下面的帖子是 多键 对应的先前的问题 https stackoverflow com q 39748976 559827我的 先前问题的解决方案仅适用于连接位于单个键上的情况 并且我不清楚如何将这些解决方案推广到下面介绍的多键情况 因
  • 具有默认值artifactID的Maven原型属性

    我想创建一个使用要创建的参数的原型 坚果我不知道以这种方式创建的参数是否正确
  • 多次调用方法的 Python Mock 对象

    我正在测试一个类 它具有另一个类的依赖项 该类的实例被传递给 CUT 的 init 方法 我想使用 Python Mock 库来模拟这个类 我所拥有的是这样的 mockobj Mock spec MyDependencyClass mock
  • 使用 CSS 的样式选择选项

    我正在尝试使用 CSS 设置选择选项列表的样式 我希望列表的时间之间有更多的填充 因为它们似乎被压在一起 我尝试向选项元素添加填充 但这似乎不起作用 有任何想法吗 这是我的代码 HTML
  • 如何将 .env 文件变量传递给 webpack 配置?

    我是 webpack 的新手 几乎完成了所有构建部分 但现在的问题是我想将环境变量从 env 文件传递 到 webpack 配置 以便我可以通过以下方式将该变量传递到我的构建文件webpack DefinePlugin plugin 目前我
  • 更新 Visual Studio 2017 15.6.2 时出错

    我试图将 VS 2017 更新到 15 6 2 版本 像往常一样 VS 要求我更新安装程序 但是安装程序更新失败 现在 当我尝试再次启动 VS 更新时 收到以下错误消息 加载 vs installershell exe 时出错 主题中不存在
  • 如何从 data.frame 中删除列?

    不是 你怎么 但更多的是 你怎么 如果有人给你一个包含 200 列的文件 并且你想将其减少到分析所需的少数列 你会如何做呢 一种解决方案是否比另一种解决方案更有优势 假设我们有一个包含列 col1 col2 到 col200 的数据框 如果
  • R 中的“右”滚动平均值和“左”滚动平均值是什么?

    如果我想计算之前的n意味着年份滞后于当年 我将如何实现这一点 它像 右 滚动平均窗口一样简单吗 或者它是一个 左 滚动平均窗口 我不确定这里使用哪个窗口 样本数据 set seed 1234 dat lt data frame year c
  • 如何衡量字符串的复杂度?

    我有一些长字符串 1 000 000 个字符 每个字符串仅包含定义字母表中的符号 例如 A 1 2 3 示例字符串 string S1 1111111111 meta complexity 0 string S2 1111222333 me
  • JSF Maven Mojarra 实施

    我尝试使用 JSF Eclipse 和 Maven 创建简单的项目 我用了
  • 使用 WebRTC 构建 iOS 本机应用程序

    我找了4天了 还是没找到 我构建了所有库并将其集成到我的自定义项目中 但我不知道应该采取哪些步骤才能使其正常工作 我在代码示例 解释中发现的唯一内容是 tech appear in 2015 05 25 Getting started wi
  • 使用 data.table 对分组数据进行插值

    这是我最初发布的问题的延续http r 789695 n4 nabble com subset Between data table list and single data table object tp4673202 html http
  • SvcUtil.exe 与添加引用

    当 VS NET 中的 添加服务引用 提供了您需要的所有代理类时 为什么有人会使用 SvcUtil exe 有时在 VS 中添加服务引用无法创建有用的代理 相反 它为您提供了一个空的 Reference cs 详细信息here https
  • GridSearchCV.best_score 与 cross_val_score 不同(GridSearchCV.best_estimator_)

    考虑以下网格搜索 grid GridSearchCV clf parameters n jobs 1 iid True cv 5 grid fit grid fit X train1 y train1 根据 Sklearn 的资源 grid
  • 可以在本地使用“用户分配的托管身份”吗?

    我正在尝试使用User Assigned Managed Identity https learn microsoft com en us azure active directory managed identities azure re
  • 如何在Python中获取字符串中的°字符?

    我怎样才能得到一个 度 字符转换为字符串 这是指定 Unicode 字符的最对编码人员友好的版本 degree sign u N DEGREE SIGN 转义序列 N name Meaning 角色命名name在 Unicode 数据库中
  • _CrtCheckMemory使用示例

    我试图了解如何使用 CrtCheckMemory追踪我正在开发的 Windows 应用程序中的堆损坏 我似乎无法让它返回false 这是我的测试代码 int test new int 1 for int i 0 i lt 100 i tes