Как открыть аварийный дамп C# (Minidump)

Наше приложение C# вызывает MinidumpWriteDump при необработанном исключении.

Я получил несколько аварийных дампов от пользователей, где я не могу открыть аварийный дамп с помощью SOS и увидеть исключение, вызвавшее сбой.

Тип дампа, который мы берем, это MiniDumpWithPrivateReadWriteMemory

Мой _NT_SYMBOL_PATH настроен на использование публичного сервера символов MS, и при отладке этого аварийного дампа в WinDBG он автоматически загружает необходимые библиотеки DLL (так как этот дамп был взят на машине с другой версией.NET 2, а именно той, которая заканчивается с.3053)

При запуске! Потоки я получаю этот вывод:

Не удалось запросить ThreadStore

Я перебрал ВСЕ ВОЗМОЖНЫЕ сайты, которые объясняют методы обработки разных версий CLR, отличных от той, что была взята на дамп-машине, ни один из них не работал для меня.

Что я могу сделать для устранения этих сбоев?

Мы делаем что-то не так (берём неправильный вид дампа из.NET-процесса и т. Д.)

РЕДАКТИРОВАТЬ:

Вот результат ~ *:

0: 000> ~ *. 0 Id: 1338.258 Приостановлено: 0 Teb: 7ffdf000 Незамерзанный приоритет: 0 1 Id: 1338.2a0 Приостановлено: 0 Teb: 7ffde000 Не заморожено Приоритет: 0 2 Id: 1338.1fd4 Приостановлено: 0 Teb: 7ffdd000 Незамороженный Приоритет: 0 3 Id: 1338.17e8 Приостановлено: 0 Teb: 7ffda000 незамерзший приоритет: 0 4 Id: 1338.1148 Приостановка: 0 Teb: 7ffd9000 незамерзающий приоритет: 0 5 Id: 1338.b1c Приостановка: 0 Teb: 7ffd7000 незамерзший приоритет: 0 6 Id: 1338.f94 Приостановка: 0 Teb: 7ffd4000 Незамерзанный приоритет: 0 7 Идентификатор: 1338.11b4 Приостановка: 0 Теб: 7ff4f000 Незамороженный приоритет: 0 8 Идентификатор: 1338.1814 Приостановка: 0 Теб: 7ff4e000 Незамороженный приоритет: 0 9 Идентификатор: 1338.1cc4 Приостановка: 0 Теб: 7ffdb000 Незаполненный приоритет: 0 10 Id: 1338.1e48 Приостановлено: 0 Teb: 7ffd5000 Незамороженный приоритет: 0 11 Id: 1338.1a5c Приостановлено: 0 Teb: 7ff4c000 Незамороженный приоритет: 0 12 Id: 1338.1874 Приостановлено: 0 Teb: 7ff4b000 Незамороженный приоритет: 0 13 Id: 1338.1498 Приостановлено: 0 Теб: 7ff4a000 Незапорожненный Приоритет: 0

Вот результат! Анализа -v:

анализировать

2 ответа

Решение

Вероятно, WinDbg загружает не ту версию библиотеки mscorwks. Попробуйте использовать.cordll -lp, чтобы явно указать WinDbg, какие модули отладки CLR следует загрузить, см. Также этот пост в блоге: Проблемы отладки управляемого кода в WinDbg с помощью SOS и PSSCOR2 (например, "Не удалось запросить ThreadStore")

Вам нужно изменить параметры, которые вы передаете в 'MiniDumpWriteDump', чтобы убедиться, что они содержат параметры, упомянутые здесь: Какой минимальный MINIDUMP_TYPE установлен для создания дампа собственного процесса C++, в котором размещается компонент.net, который можно использовать! Clrstack в windbg

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