首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存堆损坏和GFlags/windbg

内存堆损坏和GFlags/windbg
EN

Stack Overflow用户
提问于 2012-01-03 10:57:32
回答 1查看 4.2K关注 0票数 0

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

我在网上找到了这样的一句话:

"GFlags.exe:一个堆调试程序。使用GFlags,您可以建立标准、/full或/dlls堆选项,这些选项将迫使操作系统在程序覆盖堆内存时生成访问冲突和损坏错误。“

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

网上有什么好的/合成的纸吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-03 12:37:53

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

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

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

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

请注意,/full选项会导致程序使用更多内存,因此只能在相对较小的程序上使用。如果/full选项不会导致“崩溃”,那么也尝试使用/full /backwards

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8711224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档