检测堆损坏
Detect heap corruption
Visual Studio 2008 是否有任何选项(运行时)来检测堆损坏的即时检测?
如果浏览从 Visual C++ 调试运行时导出的调试例程列表,可以找到许多有用的调试函数,包括可用于设置调试堆检查自身是否损坏的频率的_CrtSetDbgFlags函数。
来自 Microsoft 的应用程序验证器是实现此目的的绝佳工具。我发现它非常有用。下载它 :
http://www.microsoft.com/en-us/download/details.aspx?id=20028
然后四处寻找一些教程。通常只需指向可执行文件,然后像往常一样在Visual Studio调试中运行exe。它应该在问题发生的位置附近中断。
您可以使用应用程序的发布版本在任何窗口上激活"整页堆"(至少从 Windows 2000 开始!)。它将在错误发生时捕获 99% 的错误。您可以查看此页面以获取此功能的教程。不要忘记在完成应用程序故障排除后停用整页堆。此技术可能不适用于调试版本,因为 CRT 的调试版本使用自己的方案来分配动态内存。
相关文章:
- 检测到堆损坏:在正常块 c++ 动态 2D 数组之后
- 删除字符串后C++检测到堆损坏
- 检测到堆损坏(字符串导致堆损坏)|C++
- 在C++中检测到堆损坏错误
- C++ 内存损坏检测
- 如何修复检测到堆损坏:正常阻止后
- 在复制 delete[] 数组后在 C++ 中检测到堆损坏
- 从检测到 glibc 正常退出 - malloc():内存损坏
- 编译器如何检测内存损坏
- 排序程序的错误(检测到堆损坏)
- 正常块错误后检测到的堆损坏
- C++ 删除数组时检测到堆损坏
- 调试错误,在C++中检测到堆损坏
- 检测到堆损坏(类方法)
- 在普通块(#164)之后检测到堆损坏
- jemalloc未检测到内存损坏
- 检测到合并排序堆损坏
- 堆损坏检测(模拟动态数组与静态数组)
- 堆损坏检测:在正常块之后(#153)
- QwtPlot - 堆损坏检测