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, в которой указатели передаются в регистрах. Или потому, что ваш код завис из-за повреждения кучи, что делает информацию отладки одинаково ненадежной. Либо стопка грохочущей нити выдувается, не оставляя следов хлеба.

Сделайте ваш выбор.

Другие вопросы по тегам