C++ MiniDumpWriteDump - FullMemoryDump не дает мне много информации
Я использовал MiniDumpWriteDump для создания файлов дампа при сбое. Я пытался сделать полный дамп памяти. Это, кажется, работает, и генерирует большой файл, как и ожидалось.
Однако, когда я загружаю этот огромный файл в Visual Studio (2005), я не вижу значений каких-либо переменных в куче. На самом деле это дает мне не больше информации, чем обычный дамп...
Мой вызов MiniDumpWriteDump заключается в следующем;
MINIDUMP_EXCEPTION_INFORMATION mdi;
mdi.ThreadId = GetCurrentThreadId();
mdi.ExceptionPointers = in_pInfo;
mdi.ClientPointers = FALSE;
MiniDumpWriteDump(GetCurrentProcess(),GetCurrentProcessId(),
fHan,
MiniDumpWithFullMemory,
&mdi,
0,
0);
Примечание: у меня есть полный набор pdb, допустимый стек, и в моем тестовом приложении я подделываю ошибку с делением на ноль.
Есть идеи, почему это так?
Cheers Rich
1 ответ
Возможно, потому что у вас нет правильных файлов.pdb. Или потому что ваш код был пропущен через оптимизатор версии шифрования RSA. Или потому, что у вас есть сборка x64, в которой указатели передаются в регистрах. Или потому, что ваш код завис из-за повреждения кучи, что делает информацию отладки одинаково ненадежной. Либо стопка грохочущей нити выдувается, не оставляя следов хлеба.
Сделайте ваш выбор.