Visual Studio的内存窗口只包含问号

Dom*_*que 0 c++ dump visual-studio visual-studio-debugging

我正在研究标准 C++ 程序的故障转储。

我在使用以下代码时遇到问题:

_variant_t* pvarTemp;
pvarTemp = <static_cast><_variant_t*> (pointer_array->GetAt(i));
if (!pvarTemp) continue;
pvarTemp->Clear();
Run Code Online (Sandbox Code Playgroud)

由于我推测内存出了问题,我决定查看一下内存窗口(菜单“调试”、“Windows”、“内存”、“内存 1”),我在其中输入了 的内存地址pvarTemp,但我只看到了一些问号。

故障转储本身只是一个小的故障转储,结果如下PYKDtargetSystem().desc在 Windgb 中):

0:049> !py
Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> print targetSystem().desc
User mini dump: C:\Temp_Folder\CRASH.DMP
Run Code Online (Sandbox Code Playgroud)

我的问题是:问号的原因是什么?

  1. 有问号的原因也是应用程序崩溃的原因。
  2. 由于我正在处理一个小型故障转储,转储中提到的内存地址可能不可信,因此问号是正常行为。

两者哪一个是正确的?

Adr*_*thy 5

您正在进行事后调试。通常,故障转储不会捕获进程使用的所有内存。如果您尝试检查转储中未包含的内存,您将看到问号。

如果您正在进行实时调试,问号意味着地址未映射到进程空间。