首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VC++ 6.0 - WinDbg堆栈跟踪显示在malloc处有一个崩溃点

VC++ 6.0 - WinDbg堆栈跟踪显示在malloc处有一个崩溃点
EN

Stack Overflow用户
提问于 2011-12-14 17:41:22
回答 1查看 793关注 0票数 0

应用程序崩溃后,windbg中的堆栈跟踪如下:

代码语言:javascript
复制
ntdll+0x11766
msvcrt!free+0x1ae
msvcrt!free+0x1cc
msvcrt!malloc+0x27
mfc42!Ordinal823+0x2f

请让我知道这是什么意思,为什么免费被调用两次?

EN

回答 1

Stack Overflow用户

发布于 2011-12-14 19:44:20

当崩溃发生在malloc或free中时,最有可能的原因是堆损坏。损坏的原因可能发生在与当前堆栈无关的代码中。要验证堆是否已损坏,请使用

代码语言:javascript
复制
!heap –s –v

为此,您将需要符号,请提前使用

代码语言:javascript
复制
.symfix

你可能根本没有空闲,由于缺少符号,堆栈显示的偏移量是最近的出口,因此大偏移量(free+0x1cc )检查堆栈后的.symfix和享受!

要找到内存损坏的根本原因,可以使用不同的方法,但如果可能,全页堆是一个很好的方法。

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

https://stackoverflow.com/questions/8502303

复制
相关文章

相似问题

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