Расшифровка the.NET параметры исключения clr20r3 P1..P10
Я пытаюсь расшифровать значение на P1...Параметры P10, связанные с A clr20r3 это записывается в журнал событий, когда мое приложение испытывает исключение.
лучшее, что у меня есть смог найти - это:
P1: хостинг-процесс (напримерw3wp.exe)
P2: версия процесса хостинга (например6.0.3790.1830)
P3: ??? (например42435be1)
P4: сборка, из которой было вызвано исключение (напримерmrtables.webservice)
P5: версия сборки (например2.1.2.0)
P6: ??? (например4682617f)
P7: ??? (например129)
P8: ??? (например50)
P9: тип исключения (напримерsystem.argumentexception)
P10: ??? (напримерNIL)
гуглить для clr20r3 предоставляет тысячи значений параметров выборки, из которых кто-то может попытаться вывести шаблон.
но я надеюсь на документацию по значения параметров, в отличие от образованных догадок.
Edit: хотя я могу надеяться на каноническую документацию, на самом деле я был бы рад увидеть исключение, в какой строке, в комплекте с трассировкой стека.
Бонус Чтение
Необработанное исключение, которое вызвало сбой приложения с " EventType clr20r3, P1 w3wp.exe " в журнале, но никаких подробностей там (просьба о помощи с проблемой, пока мы запрашивая каноническое объяснение того, что означают параметры)
2 ответов:
вот информация о Watson Buckets
- Имя Exe Файла
- номер версии сборки Exe-файла
- Exe Штамп Файла
- Exe-файл полное имя сборки
- ошибка сборки версия
- ошибка сборки метка времени
- метод сборки неисправностей def
- метод неисправности смещение IL в пределах метода неисправности
- тип исключения
и вот MSDN статья о том же.
пример:
Problem Signature 01: devenv.exe Problem Signature 02: 11.0.50727.1 Problem Signature 03: 5011ecaa Problem Signature 04: Microsoft.VisualStudio.SharePoint.Project Problem Signature 05: 11.0.60226.0 Problem Signature 06: 512c2dba Problem Signature 07: 18a8 Problem Signature 08: 1d Problem Signature 09: System.NullReferenceException
P7 и P8 являются важными, чтобы выяснить, где было вызвано исключение P9. Используйте P4, чтобы узнать, какую сборку искать. Запустить ildasm.exe и откройте эту сборку. Файл + дамп, установите флажок "значения токенов", ОК и сохраните файл .il где-нибудь.
открыть файл в текстовом редакторе. P7 дает вам токен метода, он начинается с 0x06, производя значение токена "06000129". Ищите:
.method /*06000129*/что дает вам имя метода, посмотрите оттуда, чтобы найти .класс, который дает вам имя класса.
P8 дает вам смещение IL. Из найденного .метод, найдите IL_0050 для инструкции, которая вызвала исключение. Сопоставление его с исходным кодом немного сложно, но вы, вероятно, поймете это. При необходимости используйте отражатель.
В общем, напишите обработчик событий для
AppDomain.UnhandledExceptionчтобы избежать боли обратного проектирования этих ведер аварии Уотсона. Запишите значениеe.ExceptionObject.ToString()чтобы получить сообщение об исключении и стек след.
Comments