Есть ли способ отладить уже работающее приложение, скомпилированное в режиме выпуска?

StackOverflow https://stackoverflow.com/questions/376128

Вопрос

У меня есть служба dotnet windows, которая сейчас зависла, но работает.Есть ли к нему как-нибудь прикрепить отладчик, несмотря на отсутствие символов;и что он уже запущен?

Это было полезно?

Решение

Не обращайте внимания на предупреждение «нет символов».Как только у вас будет подключен собственный отладчик (я предпочитаю WinDbg для подобных вещей), загрузите пакет инструментов SoS:

.loadby sos mscorwks

Теперь вы можете получить управляемый стек вызовов, используя !clrstack и надеемся, что это даст вам достаточно информации, чтобы разобраться в зависании.Вот удобная шпаргалка с несколькими другими, если это вас не устраивает.

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

Другие советы

От MS Dev IDE Debug -> Processes -> Прикрепите (после выбора процесса.) Вам, возможно, придется щелкнуть поле «Показать системные процессы».Хотя полезной информации может и не быть...

Вот пример кода, ссылки на инструменты и презентации по как отладить зависший процесс .NET.

Вы, наверное, тоже захотите посмотреть эта видеопрезентация, в котором используются те же инструменты и образцы.Несмотря на шведский текст на веб-странице, видео на английском языке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top