gpt4 book ai didi

c++ - VC++ 6.0 - WinDbg 堆栈跟踪显示 malloc 的崩溃点

转载 作者:行者123 更新时间:2023-11-28 08:12:59 28 4
gpt4 key购买 nike

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

ntdll+0x11766
msvcrt!free+0x1ae
msvcrt!free+0x1cc
msvcrt!malloc+0x27
mfc42!Ordinal823+0x2f

请告诉我这个 Ordinal 是什么意思,为什么 free 被调用了两次?

最佳答案

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

!heap –s –v

你将需要符号,提前使用

.symfix

您可能根本不空闲,由于缺少符号,堆栈已显示偏移到最近的导出,因此偏移量很大(free+0x1cc)在 .symfix 之后检查堆栈并享受!

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

关于c++ - VC++ 6.0 - WinDbg 堆栈跟踪显示 malloc 的崩溃点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8502303/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com