内存堆损坏和GFlags/windbg

Memory heap corruption and GFlags/windbg

本文关键字:windbg GFlags 损坏 内存      更新时间:2023-10-16

我有一个应用程序产生内存堆异常(损坏)。

在网上我发现了这样的句子:

"GFlags.exe:一个堆调试程序。使用GFlags,您可以建立标准、/full或/dll堆选项将强制执行操作系统生成访问违规和损坏错误时程序覆盖堆内存。"

但具体地说,我如何使用GFlags或Windbg在我的源代码中找到导致错误的行?

网上有好的合成纸吗?

GFlags可以使Windows中的堆管理器行为不同,以帮助调试堆问题。

当与/full选项一起使用时,如果您访问分配的缓冲区超过其长度,您的程序将由于访问冲突而"崩溃"。

(如果没有GFlags /full,程序可能会继续,问题会在很长时间后出现)你可以利用VS或WinDbg及时调试或收集崩溃转储。

调试器现在应该指向错误(指令指针)希望您能在源代码中找到导致错误的语句。

请注意,/full选项会导致程序使用更多内存,因此只能用于相对较小的程序。如果/full选项不会导致"崩溃",也可以尝试使用/full /backwards