内存堆损坏和GFlags/windbg
Memory heap corruption and GFlags/windbg
我有一个应用程序产生内存堆异常(损坏)。
在网上我发现了这样的句子:
"GFlags.exe:一个堆调试程序。使用GFlags,您可以建立标准、/full或/dll堆选项将强制执行操作系统生成访问违规和损坏错误时程序覆盖堆内存。"
但具体地说,我如何使用GFlags或Windbg在我的源代码中找到导致错误的行?
网上有好的合成纸吗?
GFlags
可以使Windows中的堆管理器行为不同,以帮助调试堆问题。
当与/full
选项一起使用时,如果您访问分配的缓冲区超过其长度,您的程序将由于访问冲突而"崩溃"。
(如果没有GFlags /full
,程序可能会继续,问题会在很长时间后出现)你可以利用VS或WinDbg及时调试或收集崩溃转储。
调试器现在应该指向错误(指令指针)希望您能在源代码中找到导致错误的语句。
请注意,/full
选项会导致程序使用更多内存,因此只能用于相对较小的程序。如果/full
选项不会导致"崩溃",也可以尝试使用/full /backwards
。
相关文章:
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- WinDbg 不显示某些小型转储文件的完整堆栈跟踪
- Windbg 将两个命令(MASM 和 C++)合二为一
- WinDBG适用于从Visual Studio 2015保存的转储,但不适用于任务管理器。显示异常代码"not found"
- windBG DDS - 无法获取分配内存的源
- DebugDiag - 仪器堆栈,如windbg 'kp' 命令
- 如何在 WinDBG 预览版上设置源服务器?
- 如何使用 WinDbg 查找"GetProcAddress"函数的进程名称
- 如何使用 windbg "dt"命令从命名空间污染的内存转储中获取信息
- Windbg C 如何打印向量内容
- 使用“ .reload”迫使windbg加载PDB
- Windows Gflags应用程序堆检测堆
- 在WINDBG中调用C 方法实例并打印结果
- 在WindBG断点命令中调用JavaScript函数
- 是否有一个windbg命令来检索转储的module_name
- 是WINDBG SRV*错误的文档
- 使用 windbg 查找不在堆栈顶部的函数的函数参数
- 在 windbg 中的用户模式转储中查找 hwnd 信息
- 在windbg中"!heap -h"输出中"Internal"的含义是什么?
- 内存堆损坏和GFlags/windbg