0

我在看一个崩溃转储。有些变量在windbg 中看起来完全可见,而其他变量只是说“内存访问错误”。这是什么原因造成的?为什么有些变量具有有意义的值而其他变量只是列出?

似乎所有问题都与以下指针有关。我敢肯定,虽然这些指针中有许多未初始化,但它们中的绝大多数应该指向有效的地方。基于这次崩溃的性质(一个简单的 null ptr 取消引用),我相当肯定整个过程并没有出去吃午饭。

4

2 回答 2

2

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

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

-斯科特

于 2010-11-07T15:08:07.107 回答
1

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

于 2010-10-29T20:33:55.503 回答