我正在看崩溃转储。一些变量在windbg中看起来完全可见,而其他变量只是说“内存访问错误”。是什么导致这个?为什么有些变量具有敏感值而其他变量只是列出?
似乎所有问题都与后续指针有关。我确信虽然其中许多指针未初始化,但绝大多数指针都指向某个有效的位置。根据这次崩溃的性质(一个简单的空间ptr取消引用)我很确定整个过程还没有出去吃午饭。
答案 0 :(得分:2)
小型转储相当无用,它们不包含所有使用内存的快照。相反,它们包含的是一些关键结构/列表(例如加载的模块列表)和崩溃堆栈的内容。
因此,您尝试在转储中遵循的任何指针都只会给您一个问号。取而代之的是获取完整的内存转储,您将能够看到这些缓冲区指向的内容。
-Scott
答案 1 :(得分:1)
如果它们是本地指针变量,最可能发生的是指针未初始化,或者堆栈位置已被重用以包含另一个可能不是指针的变量。在这两种情况下,指针值都可能指向一个随机的,不可读的内存部分。