Я работаю над аварийным сбросом стандартной программы на C ++.
У меня проблема со следующим фрагментом кода:
_variant_t* pvarTemp;
pvarTemp = <static_cast><_variant_t*> (pointer_array->GetAt(i));
if (!pvarTemp) continue;
pvarTemp->Clear();
Поскольку я предполагаю, что что-то не так в памяти, я решил взглянуть на окно памяти (меню «Отладка», «Windows», «Память», «Память 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
Мой вопрос: в чем причина вопросительных знаков?
- Причина наличия вопросительных знаков также является причиной сбоя приложения.
- Поскольку я работаю с небольшим аварийным дампом, адреса памяти, упомянутые в дампе, могут быть ненадежными, поэтому вопросительные знаки - нормальное поведение.
Какой из двух правил правильный?