c++ - PageHeap 不显示确切的崩溃位置

标签 c++ memory-management windbg pageheap

我正在使用 PageHeap 来识别堆损坏。我的应用程序有堆损坏。但是应用程序在为传递给方法的字符串创建 STL 对象时中断(由于崩溃)。我在崩溃位置附近看不到任何可见的内存问题。我启用了整页堆来检测堆损坏,并启用了/RTC 来检测堆栈损坏。

我应该怎么做才能在发生堆损坏的确切位置中断?

最佳答案

启用 FULL pageheap 可以增加调试器捕获正在发生的堆损坏的机会:

gflags /p /enable /full <processname>

此外,如果你能找出哪个地址被覆盖,你可以在 windbg 中设置内存访问断点。不确定 VS 调试器是否具有相同的功能。

关于c++ - PageHeap 不显示确切的崩溃位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5925468/

相关文章:

c++ - 代码分析在 VS 2010 中不起作用

c++ - 另类角色 - HackerRank

c++ - 理解C++框架的设计

c++ - 为什么C++可以使用未初始化的成员变量(引用或指针*NOT value copy*)来初始化其父类的成员变量

C:缺少指针的一些逻辑

gdb - 加载调试符号时如何在 windbg 中列出函数源?

c++ - WinDbg 的外部碎片是什么意思?

c++ - Windows API 和字符串连接

c++ - 内存分配中的魔数(Magic Number)

c++ - 调试进程的子可执行文件