Наше приложение C# вызывает MinidumpWriteDump при возникновении необработанного исключения.
Я получил несколько аварийных дампов от пользователей, где я не могу открыть аварийный дамп с помощью SOS и увидеть исключение, вызвавшее сбой.
Мы используем тип дампа MiniDumpWithPrivateReadWriteMemory.
У меня _NT_SYMBOL_PATH настроен на использование общедоступного сервера символов MS, и при отладке этого аварийного дампа в WinDBG он автоматически загружает необходимые библиотеки DLL (поскольку этот дамп был взят на машине с другой версией .NET 2, а именно той, которая заканчивается с .3053)
При запуске !Threads я получаю этот вывод:
Не удалось запросить ThreadStore
Я просмотрел ВСЕ ВОЗМОЖНЫЕ сайты, которые объясняют методы работы с различными версиями CLR, кроме той, что была взята на машине дампа, ни один из них не работал у меня.
Что я могу сделать, чтобы отладить эти сбои?
Мы делаем что-то не так (берем неправильный дамп из процесса .NET и т. д.)
РЕДАКТИРОВАТЬ:
Вот результат ~*:
0:000> ~* . 0 Id: 1338.258 Suspend: 0 Teb: 7ffdf000 Unfrozen Priority: 0 1 Id: 1338.2a0 Suspend: 0 Teb: 7ffde000 Unfrozen Priority: 0 2 Id: 1338.1fd4 Suspend: 0 Teb: 7ffdd000 Unfrozen Priority: 0 3 Suspends Priority: 0 3 Suspends1 Id: 13e81 : 0 Teb: 7ffda000 Unfrozen Priority: 0 4 Id: 1338.1148 Suspend: 0 Teb: 7ffd9000 Unfrozen Priority: 0 5 Id: 1338.b1c Suspend: 0 Teb: 7ffd7000 Unfrozen Priority: 0 6 Id: 1338.f94 Suspend: 0 Teb: 7ffd4000 Unfrozen Priority: 0 7 Id: 1338.11b4 Suspend: 0 Teb: 7ff4f000 Unfrozen Priority: 0 8 Id: 1338.1814 Supend: 0 Teb: 7ff4e000 Unfrozen Priority: 0 9 Id: 1338.1cc4 Suspend: 10 Teb: Unfrozen 0 0 7ffdrob Id: 1338.1e48 Suspend: 0 Teb: 7ffd5000 Unfrozen Priority: 0 11 Id: 1338.1a5c Suspend: 0 Teb: 7ff4c000 Unfrozen Priority: 0 12 Id: 1338.1874 Suspend: 0 Teb: 7ff4b000 Unfrozen Priority: 0 13 Unfrozen Suspend: 13 13 Unfrozen Suspend 1d. : 0 Теб: 7ff4a000 Разморозить Приоритет: 0
Вот результат !analyze -v: