Windbg с SOS, останавливаясь на правильном исключении - PullRequest
1 голос
/ 14 сентября 2010

У меня есть служба Windows, которая периодически выдает исключение, которое иногда убивает его SQLConnection, а в других случаях полностью убивает службу. Он работает в прямом эфире на сайте клиента.

Я планировал использовать Windbg + SOS для получения аварийного дампа, чтобы я мог отлаживать его на досуге.

Однако при моей первой попытке отладчик остановил службу, когда обнаружил первое случайное исключение, которое было перехвачено и обработано в коде (как я использовал команду sxe clr).

В файле справки предлагается использовать sxd clr вместо sxe clr для захвата исключений второго изменения вместо исключений первого шанса.

Однако в моем тестировании сгенерированное, перехваченное и обработанное исключение обрабатывается точно так же, как и выброшенное исключение (но не перехвачено) командой sxd clr, а именно это замечается и игнорируется.

Является ли это поведение не остановкой на выброшенном исключении, возможно, когда я явно сгенерировал исключение в своем коде, или все исключения clr не смогут остановить отладчик с помощью команды sxd? Должен ли я использовать другую команду?

Во-вторых, поскольку Windbg специально не распознает ошибки clr, можно ли заставить его останавливаться только на конкретном необработанном исключении (т. Е. InvalidOperationException)

1 Ответ

1 голос
/ 14 сентября 2010

Вероятно, проще использовать adplus для создания файла дампа. В этой статье показано, как создавать мини-дампы для определенных исключений .NET с помощью adplus.

...