Visual studio的记忆window只包含问号
Visual studio's memory window only contains question marks
我正在处理标准 C++ 程序的故障转储。
我在使用以下代码时遇到问题:
_variant_t* pvarTemp;
pvarTemp = <static_cast><_variant_t*> (pointer_array->GetAt(i));
if (!pvarTemp) continue;
pvarTemp->Clear();
因为我认为内存出了问题,所以我决定查看内存 window(菜单 "Debug"、"Windows"、"Memory"、"Memory 1"),这里输入了pvarTemp
的内存地址,但是只看到了一些问号
崩溃转储本身只是一个小的崩溃转储,在此 PYKD
的 targetSystem().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
我的问题是:问号的原因是什么?
- 出现问号的原因也是应用程序崩溃的原因。
- 因为我正在处理一个小的崩溃转储,转储中提到的内存地址可能不可信,所以问号是正常行为。
两者中哪一个是正确的?
您正在进行事后调试。通常,故障转储不会捕获进程使用的所有内存。如果您尝试检查未包含在转储中的内存,您会看到问号。
如果您正在进行实时调试,问号表示地址未映射到进程 space。
我正在处理标准 C++ 程序的故障转储。
我在使用以下代码时遇到问题:
_variant_t* pvarTemp;
pvarTemp = <static_cast><_variant_t*> (pointer_array->GetAt(i));
if (!pvarTemp) continue;
pvarTemp->Clear();
因为我认为内存出了问题,所以我决定查看内存 window(菜单 "Debug"、"Windows"、"Memory"、"Memory 1"),这里输入了pvarTemp
的内存地址,但是只看到了一些问号
崩溃转储本身只是一个小的崩溃转储,在此 PYKD
的 targetSystem().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
我的问题是:问号的原因是什么?
- 出现问号的原因也是应用程序崩溃的原因。
- 因为我正在处理一个小的崩溃转储,转储中提到的内存地址可能不可信,所以问号是正常行为。
两者中哪一个是正确的?
您正在进行事后调试。通常,故障转储不会捕获进程使用的所有内存。如果您尝试检查未包含在转储中的内存,您会看到问号。
如果您正在进行实时调试,问号表示地址未映射到进程 space。