Существует C# -программа, которая висит довольно редко. Выполнение программы происходит на удаленных компьютерах и запуск отладчика не является вариантом. Запуск внешнего профилировщика более реалистичен, но также сопряжен с огромными трудностями. Как вы можете определить точку зависания программы без профилирования или отладчика?Идентификация точки подвески программы
Вариант «подробный вход в систему FS» плохо подходит. Программа состоит из около 20 тысяч строк кода и зависает не часто.
Я пробовал Process Explorer, но он работает очень странно (или я его не понял). Если вам удалось «поймать» момент, когда поток вступил в бесконечный цикл, в этот момент можно увидеть стек. Но этот поток довольно быстро исчезает (будь то в PE или он действительно убит средой).
Возможна установка другого приложения-приложения-монитора. Если вы можете сказать, как создать дамп основного процесса или получить информацию о потоках основного процесса, было бы здорово. Если у вас есть готовые инструменты, это будет еще лучше.
Все записи в окне просмотра журнала событий приложений? –
Может ли это быть другое программное обеспечение (например, db dump или запланированное обслуживание)? – NoChance
@ Pierre-LucPineault, большое спасибо. Я проверил стандартный журнал событий Windows Aplication и нашел записи об этих ошибках. Я знаю точное время зависания, поэтому не было проблем с обнаружением ошибок моего приложения. Вы можете написать ответ, чтобы получить carma). –