Windbg с sos, останавливаясь на правильном исключительном
-
02-10-2019 - |
Вопрос
У меня есть служба Windows, которая является периодически, бросая исключение, которое иногда убивает его SQLConnection, и в других случаях полностью убивает услугу. Он работает на сайте клиента.
Я планировал использовать WINDBG + SOS на нем, чтобы получить аварийный срок, чтобы я мог отладить это на своем досуге.
Однако в моей первой попытке отладчик остановил услугу, когда он поразил первый случай исключения, который был пойман и обрабатывается в коде (как я использовал sxe clr
команда).
Файл справки, по-видимому, предложит, я использую sxd clr
, вместо sxe clr
, чтобы захватить второе изменение исключений вместо первых случайных исключений.
Однако в моем тестировании генерируется, пойманный и обработанный исключением, обращается точно так же, как брошенное исключение (но не поймано) по sxd clr
Команда, а именно, это отмечено и игнорируется.
Является ли это поведение, не останавливаясь на выброшенном исключительном исключительном, возможно, я явно бросил исключение в моем коде, или все исключения CLR не могут остановить отладчик с sxd
команда? Должен ли я использовать другую команду?
Во-вторых, как WINGBG конкретно не распознает ошибки CLR, можно ли его сказать, чтобы остановиться только на определенном, необработанном, исключением (т.е. InvalidOperationException)
Решение
Вероятно, просто просто использовать ADPLUS для создания файла дампа. Эта статья Показывает, как создавать минимумы для конкретных исключений .NET, используя adplus.