Завис процесс в Windows: есть ли способ узнать почему?

13537
Nathan Fellman

Я попытался напечатать документ на слове, и слово застыло. Могу ли я узнать, какого ресурса он ждет?

Я использую Windows XP и Word 2007 (хотя я думаю, что ответ не зависит от процесса, который замерз)

11
Натан, я думаю, ты дважды опубликовал, http://superuser.com/questions/10085/. James McMahon 15 лет назад 1
Я сделал! Как неловко! Nathan Fellman 15 лет назад 0

5 ответов на вопрос

12
James McMahon

Вы можете посмотреть в Process Explorer . Вы можете увидеть, какие файлы / папки процессов заблокированы.

И если вы дважды щелкнете по процессу, вы даже сможете увидеть отдельные потоки и их использование ЦП. itsadok 15 лет назад 0
Хорошее предложение, но обратите внимание, что это скажет вам, какие объекты у процесса открыты, а не то, что он ожидает. Graeme Perrow 15 лет назад 1
12
Leftium

Это требует немного технических знаний, но можно анализировать зависания с помощью (бесплатного) отладчика Windows WinDbg . Требуется некоторая работа по установке, присоединению к процессу и настройке символов (очень важно!), Но затем вы можете найти причину зависания с помощью одной команды WinDbg (выделено мое):

анализировать -v -hang

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

источник

Даниэль Прават (Mario Hewardt) также предлагает расширенную отладку Windows. Это очень хорошая книга для начала работы с WinDbg: первые несколько глав дают очень подробный обзор отладчиков и того, как конкретно использовать WinDbg. Остальная часть книги заполнена подробными примерами отладки, которые вам не нужно читать. Я думаю, что есть пример, описывающий, как отладить зависание, который, однако, будет вам интересен.

После того, как вы найдете причину зависания, вы даже сможете разобрать его с помощью более продвинутых методов отладки ^^

Упомянутое тематическое исследование можно найти в главе 14 книги, раздел «! Анализ команды расширения». Он содержит очень подробную и полезную информацию о том, как интерпретировать вывод WinDbg. Claudiu 8 лет назад 0
0
Stefan Thyberg

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

0
nik

Поскольку вы пытались его распечатать, мне интересно, был ли запущен сетевой поиск Windows, и Word просто ждал, пока все сетевые принтеры будут сопоставлены для выбора.
У вас есть локально подключенный принтер? и вы находитесь в корпоративном сетевом домене с общими принтерами?

0
kpierce8

Посмотрите видеоролики о проводнике процессов « Случай 200x», в которых автор показывает диагностику нескольких сценариев устранения неполадок, включая зависания. Это также, где принудительный сбой ctrl-scrolllock-scrolllock может помочь с диагностикой.

Похожие вопросы