Proses macet di Windows: Apakah ada cara untuk melihat alasannya?

11

Saya mencoba untuk mencetak dokumen dalam kata, dan kata membeku. Apakah ada cara bagi saya untuk melihat sumber daya apa yang ditunggu?

Saya menggunakan windows XP dan kata 2007 (walaupun saya bayangkan jawabannya tidak tergantung pada proses yang membeku)

Nathan Fellman
sumber
1
Nathan, saya pikir Anda memposting ganda, superuser.com/questions/10085 .
James McMahon
Aku melakukannya! Sangat memalukan!
Nathan Fellman

Jawaban:

13

Ini membutuhkan sedikit pengetahuan teknis, tetapi dimungkinkan untuk menganalisis hang dengan Windows debugger WinDbg (gratis) . Ini memerlukan beberapa pekerjaan untuk menginstal, melampirkan ke proses, dan untuk mendapatkan simbol diatur (sangat penting!) Tetapi kemudian Anda dapat menemukan penyebab hang dengan satu perintah WinDbg (penekanan tambang):

menganalisis -v -hang

Ini yang belum pernah saya temui sebelumnya. Jalankan ini setelah membuka dump dari proses macet, dan itu akan menentukan thread mana yang bertanggung jawab atas hang dan apa yang ditunggu. Saya tahu windbg dapat membiarkan Anda memeriksa pegangan, menunjukkan semua kunci terbuka di setiap utas, dan membiarkan Anda memeriksa semuanya secara terperinci. Tetapi saya tidak menyadari bahwa dengan! Menganalisis, windbg dapat melakukan kerja keras untuk saya - memeriksa kunci yang dibuka oleh semua utas, menentukan utas mana yang menunggu yang lain, dan membangun pesanan untuk bekerja yang awalnya bertanggung jawab atas hang.

sumber

Juga Advanced Windows Debugging oleh Mario Hewardt, Daniel Pravat adalah buku yang sangat bagus untuk membantu Anda memulai dengan WinDbg: Beberapa bab pertama memberikan gambaran yang sangat terperinci tentang para debugger, dan cara menggunakan WinDbg secara khusus. Sisa buku ini diisi dengan studi kasus debugging terperinci, yang tidak harus Anda baca. Saya pikir ada studi kasus yang menjelaskan cara men-debug hang yang akan menarik bagi Anda.

Setelah Anda menemukan penyebab hang, Anda bahkan dapat membatalkannya dengan teknik debugging yang lebih canggih ^^

Leftium
sumber
Studi kasus yang dirujuk dapat ditemukan di bab 14 buku ini, bagian "! Menganalisis Perintah Perluasan". Ini berisi informasi yang sangat rinci dan berguna tentang bagaimana menafsirkan output WinDbg.
Claudiu
12

Anda mungkin ingin melihat Process Explorer . Anda dapat melihat proses penguncian file / folder apa.

James McMahon
sumber
Dan jika Anda mengklik dua kali suatu proses, Anda bahkan dapat melihat masing-masing utas dan penggunaan CPU mereka.
itsadok
1
Saran yang bagus, tetapi perhatikan bahwa ini akan memberi tahu Anda objek apa yang prosesnya buka, bukan yang menunggu.
Graeme Perrow
0

Sejauh yang saya tahu, tidak ada. Anda dapat menghubungkan sesuatu seperti Wireshark untuk melihat apakah Anda dapat menemukan sesuatu dalam lalu lintas jaringan untuk menunjukkan apa yang menunggu, tetapi itu agak berlebihan dan hampir tidak mungkin Anda akan menemukan apa pun.

Stefan Thyberg
sumber
0

Sejak cetaknya Anda coba, saya ingin tahu apakah pencarian jaringan Windows dipanggil dan Word hanya menunggu semua printer jaringan dipetakan untuk suatu pilihan.
Apakah Anda memiliki Printer yang terhubung secara lokal? dan, apakah Anda berada di domain jaringan perusahaan dengan printer bersama?

nik
sumber
0

Tonton video proses penjelajah " Kasing 200x" di mana penulis menunjukkan diagnosa beberapa skenario pemecahan masalah termasuk hang. Di sinilah crash crash ctrl-scrolllock-scrolllock dapat membantu diagnosis.

kpierce8
sumber