Процес підвішування в Windows: Чи є спосіб зрозуміти, чому?


11

Я спробував надрукувати документ словом, і слово застигло. Чи є мені спосіб побачити, який ресурс його чекає?

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


1
Натане, я думаю, що ви двічі розмістили, superuser.com/questions/10085 .
Джеймс Макмахон

Я робив! Як соромно!
Натан Фелман

Відповіді:


13

Для цього потрібно небагато технічних знань, але можна проаналізувати висі за допомогою (безкоштовного) відладчика Windows WinDbg . Щоб встановити, приєднати до процесу та встановити символи, потрібно виконати певну роботу (дуже важливо!), Але тоді ви можете знайти причину зависання за допомогою однієї команди WinDbg (акцент моя):

проаналізувати -v -hang

Це той, якого я раніше не зустрічав. Виконайте це, відкривши дамп із вивішеного процесу, і він визначить, яка нитка відповідала за зависання і що його чекало. Я знав, що windbg може дозволити вам вивчити ручки, показати всі замки, відкриті в кожній нитці, і дозволити вам їх детально вивчити. Але я не усвідомлював, що за допомогою! Аналізувати, windbg може зробити важку роботу для мене - вивчивши замки, відкриті всіма потоками, визначивши, які потоки чекають, на які інші, та створити замовлення на розробку, яке спочатку відповідало за повісити.

джерело

Також вдосконалена налагодження Windows Маріо Хьюардта, Даніель Прават - це дуже хороша книга для початку роботи з WinDbg: Перші кілька глав дають дуже детальний огляд налагоджувачів і як конкретно використовувати WinDbg. Інша частина книги заповнена детальними налагодженнями прикладних досліджень, які вам не доведеться читати. Я думаю, що є тематичне дослідження, яке описує, як налагодити вішання, яке буде цікаво для вас.

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


Про те, про яке йдеться, можна ознайомитись у розділі 14 книги, "Аналіз команди розширення" Він містить дуже детальну та корисну інформацію про те, як інтерпретувати результати WinDbg.
Клавдіу

12

Ви можете заглянути в Провідник процесів . Ви можете бачити, які процеси файлів / папок увімкнено блокування.


Якщо двічі клацнути процес, ви навіть можете бачити окремі потоки та їх використання процесора.
itadok

1
Гарна пропозиція, але зауважте, що це підкаже вам, які об’єкти відкрив процес, а не те, що його чекає.
Graeme Perrow

0

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


0

З моменту його друку ви намагалися, мені цікаво, чи був викликаний пошук в мережі Windows і Word просто чекав, коли всі мережеві принтери будуть відображені на вибір.
У вас локально підключений принтер? і чи перебуваєте ви на доменній мережі підприємства із спільними принтерами?


0

Перегляньте відеоролики провідника процесу " Випадок 200x", в якому автор показує діагностування декількох сценаріїв усунення несправностей, включаючи вішання. Тут також може бути допоможе діагностування примусового збою ctrl-scrolllock-scrolllock.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.