Расшифровка параметров исключения .NET clr20r3 P1..P10

Я пытаюсь расшифровать значение параметров P1 … P10, связанных с clr20r3 , которое записывается в журнал событий, когда мое приложение испытывает исключение.

Лучшее, что я смог найти, это:

  • P1 : процесс хостинга ( например, w3wp.exe )
  • P2 : версия хостинга ( например, 6.0.3790.1830 )
  • P3 : ??? ( например, 42435be1 )
  • P4 : assembly, из которой было создано исключение ( например, mrtables.webservice )
  • P5 : версия сборки ( например, 2.1.2.0 )
  • P6 : ??? ( например, 4682617f )
  • P7 : ??? ( например, 129 )
  • P8 : ??? ( например, 50 )
  • P9 : повышенный тип исключения ( например, system.argumentexception )
  • P10 : ??? ( например, NIL )

Googling для clr20r3 предоставляет тысячи значений параметров образца, из которых кто-то может попытаться получить шаблон.

Но я надеюсь на документацию по значениям параметра, в отличие от образованных догадок.


Изменить. Хотя я могу надеяться на каноническую документацию, я был бы рад видеть, что исключение выбрано, в какой строке, в комплекте с трассировкой стека.

Чтение бонусов

  • Необработанное исключение, вызвавшее сбой приложения с «EventType clr20r3, P1 w3wp.exe» в журнале, но никаких подробностей там (просьба о помощи с проблемой, пока мы просим каноническое объяснение того, что означают параметры)

Вот информация о Watson Buckets

  1. Имя файла Exe
  2. Номер версии сборки файла Exe
  3. Exe File Stamp
  4. Имя полной версии файла Exe
  5. Неисправность сборки
  6. Временная метка сбоя
  7. Неисправный метод сборки def
  8. Способ устранения. IL Смещение в пределах метода сбоя
  9. Тип исключения

А также здесь статья 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*/ 

Что дает вам имя метода, посмотрите оттуда, чтобы найти .class, который дает вам имя classа.

P8 дает вам смещение IL. Из найденного метода найдите IL_0050 для инструкции, которая вызвала исключение. Сопоставление его с исходным кодом немного сложно, но вы, вероятно, поймете это. При необходимости используйте рефлектор.

В общем, напишите обработчик событий для AppDomain.UnhandledException чтобы избежать боли обратного проектирования этих ковшей Watson. e.ExceptionObject.ToString() значение e.ExceptionObject.ToString() чтобы получить как сообщение исключения, так и трассировку стека.

  • Возврат из блока finally в Java
  • (Неизвестный источник) в трассировке стека исключений
  • Исключение в streamе «main» java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 51.0)
  • Как вы утверждаете, что определенное исключение выбрано в тестах JUnit 4?
  • Без броска VirtualMachineError гарантирует
  • EOFException - как обращаться?
  • Как обращаться с AccessViolationException
  • Официальные причины для «Программного обеспечения прерывания соединения: ошибка записи сокета»
  • Android Exception: вы забыли вызвать «public void setup (LocalActivityManager activityGroup)»
  • Как распечатать трассировку стека ошибок на странице JSP?
  • OutofMemoryError: размер растрового изображения превышает бюджет VM (Android)
  • Давайте будем гением компьютера.