Zawieszony proces w systemie Windows: czy jest jakiś sposób, aby zobaczyć, dlaczego?


Odpowiedzi:


13

Wymaga to trochę wiedzy technicznej, ale możliwe jest analizowanie zawieszeń za pomocą (bezpłatnego) debuggera Windows WinDbg . Wymaga to trochę pracy, aby zainstalować, dołączyć do procesu i skonfigurować symbole (bardzo ważne!), Ale potem możesz znaleźć przyczynę zawieszenia się za pomocą jednego polecenia WinDbg (moje podkreślenie):

analizuj -v-hang

Tego nie spotkałem wcześniej. Uruchom to po otwarciu zrzutu z zawieszonego procesu, a określi, który wątek był odpowiedzialny za zawieszenie i na co czekał. Wiedziałem, że windbg może pozwolić ci zbadać uchwyty, pokazać wszystkie zamki otwarte w każdym wątku i pozwolić ci zbadać je wszystkie szczegółowo. Ale nie zdawałem sobie sprawy, że dzięki! Analizie, windbg może wykonać dla mnie ciężką pracę - sprawdzanie blokad otwartych przez wszystkie wątki, określanie, które wątki czekają na które inne i budowanie zamówienia, które początkowo było odpowiedzialne za zawiesić się.

źródło

Daniel Pravat, także zaawansowany debugowanie systemu Windows autorstwa Mario Hewardta, jest bardzo dobrą książką na początek w WinDbg: kilka pierwszych rozdziałów zawiera bardzo szczegółowy przegląd debuggerów i sposobu korzystania z WinDbg. Reszta książki jest wypełniona szczegółowymi studiami przypadków debugowania, których nie musisz czytać. Myślę jednak, że istnieje studium przypadku opisujące sposób debugowania zawieszenia, który może Cię zainteresować.

Po znalezieniu przyczyny zawieszenia może być nawet w stanie ją odczepić za pomocą bardziej zaawansowanych technik debugowania ^^


Studium przypadku, o którym mowa, znajduje się w rozdziale 14 książki, w części „! Przeanalizuj polecenie rozszerzenia”. Zawiera bardzo szczegółowe i przydatne informacje na temat interpretacji wyników WinDbg.
Claudiu

12

Możesz zajrzeć do Eksploratora procesów . Możesz zobaczyć, które procesy plików / folderów mają blokadę.


A jeśli klikniesz dwukrotnie proces, możesz nawet zobaczyć poszczególne wątki i ich użycie procesora.
itsadok

1
Dobra sugestia, ale pamiętaj, że powie ci to, jakie obiekty otworzył proces, a nie na co czeka.
Graeme Perrow,

0

O ile mi wiadomo, nie ma. Możesz podłączyć coś takiego jak Wireshark, aby sprawdzić, czy możesz znaleźć coś w ruchu sieciowym, aby wskazać, na co czeka, ale jest to dość przesadne i raczej nie znajdziesz niczego.


0

Od czasu drukowania, którego próbujesz, zastanawiam się, czy wywołano wyszukiwanie sieciowe systemu Windows, a program Word czekał tylko na mapowanie wszystkich drukarek sieciowych pod kątem wyboru.
Czy masz lokalnie podłączoną drukarkę? i czy jesteś w domenie sieci korporacyjnej z udostępnionymi drukarkami?


0

Obejrzyj filmy eksploratora procesów „ Przypadek 200x”, w których autor pokazuje diagnozowanie kilku scenariuszy rozwiązywania problemów, w tym zawieszeń. W tym przypadku wymuszone zawieszenie się klawiszy Ctrl-scrolllock-scrolllock może pomóc w diagnozie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.