C ++ MiniDumpWriteDump - FullMemoryDump не дает мне много информации - PullRequest
3 голосов
/ 19 февраля 2010

Я использую 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 Ответ

2 голосов
/ 19 февраля 2010

Возможно, потому что у вас нет правильных файлов .pdb. Или потому что ваш код был пропущен через оптимизатор версии шифрования RSA. Или потому, что у вас есть сборка x64, в которой указатели передаются в регистрах. Или потому, что ваш код завис из-за повреждения кучи, что делает информацию отладки одинаково ненадежной. Либо стопка грохочущей нити раздувается, и не остается никаких крошек.

Выберите.

...