事后的minidump调试在windbg中 - 是什么导致<memory access =“”error =“”>堆内存?</memory>

时间:2010-10-29 20:11:37

标签: windbg minidump postmortem-debugging

我正在看崩溃转储。一些变量在windbg中看起来完全可见,而其他变量只是说“内存访问错误”。是什么导致这个?为什么有些变量具有敏感值而其他变量只是列出?

似乎所有问题都与后续指针有关。我确信虽然其中许多指针未初始化,但绝大多数指针都指向某个有效的位置。根据这次崩溃的性质(一个简单的空间ptr取消引用)我很确定整个过程还没有出去吃午饭。

2 个答案:

答案 0 :(得分:2)

小型转储相当无用,它们不包含所有使用内存的快照。相反,它们包含的是一些关键结构/列表(例如加载的模块列表)和崩溃堆栈的内容。

因此,您尝试在转储中遵循的任何指针都只会给您一个问号。取而代之的是获取完整的内存转储,您将能够看到这些缓冲区指向的内容。

-Scott

答案 1 :(得分:1)

如果它们是本地指针变量,最可能发生的是指针未初始化,或者堆栈位置已被重用以包含另一个可能不是指针的变量。在这两种情况下,指针值都可能指向一个随机的,不可读的内存部分。