我正在处理标准C ++程序的故障转储。
我对以下代码有疑问:
_variant_t* pvarTemp;
pvarTemp = <static_cast><_variant_t*> (pointer_array->GetAt(i));
if (!pvarTemp) continue;
pvarTemp->Clear();
由于我认为内存有问题,因此我决定查看一下内存窗口(菜单“ Debug”,“ Windows”,“ Memory”,“ Memory 1”),在其中输入了{ {1}},但我只看到一些问号。
崩溃转储本身只是一个小的崩溃转储,据此pvarTemp
的{{1}}结果(在Windgb中):
PYKD
我的问题是:问号的原因是什么?
两者中的哪一个是正确的?
答案 0 :(得分:2)
您正在进行事后调试。通常,故障转储不会捕获进程正在使用的所有内存。如果您尝试检查转储中未包含的内存,则会看到问号。
如果您正在进行实时调试,问号表示该地址未映射到进程空间。