web-dev-qa-db-ja.com

Windowsでのハングプロセス:理由を確認する方法はありますか?

Wordでドキュメントを印刷しようとしましたが、Wordがフリーズしました。待機しているリソースを確認する方法はありますか?

私はwindows XPとWord2007を使用しています(答えはフリーズしたプロセスに依存しないと思いますが)

11
Nathan Fellman

これには少し技術的な知識が必要ですが、(無料の)Windowsデバッガーでハングを分析することは可能です WinDbg 。インストール、プロセスへのアタッチ、およびシンボルの設定(非常に重要です!)にはいくつかの作業が必要ですが、1つのWinDbgコマンドでハングの原因を見つけることができます(私の強調):

分析-v-hang

これは私が前に出くわしたことがなかったものです。ハングしたプロセスからダンプを開いた後にこれを実行すると、どのスレッドがハングの原因で何を待っていたかが判別されます。windbgを知っていましたハンドルを調べたり、各スレッドで開いているすべてのロックを表示したり、それらすべてを詳細に調べたりすることができます。しかし、!analyseを使用すると、windbgが大変な作業を行うことができることに気づきませんでした。すべてのスレッドによって開いているロックを調べ、どのスレッドが他のスレッドを待っているかを判断し、最初に責任を負っていたスレッドを解決するための順序を作成しますハング。

ソース

また Advanced Windows Debugging Mario Hewardt著、Daniel Pravatは、WinDbgを使い始めるのに非常に良い本です。最初の数章では、デバッガーの非常に詳細な概要と、WinDbgの具体的な使用方法について説明します。この本の残りの部分は、詳細なデバッグのケーススタディでいっぱいであり、読む必要はありません。ただし、ハングをデバッグする方法を説明するケーススタディがあると思います。

ハングの原因を見つけたら、より高度なデバッグ手法を使用してハングを解除できる場合もあります^^

13
Leftium

Process Explorer を調べてみてください。どのファイル/フォルダプロセスがロックされているかを確認できます。

12
James McMahon

プロセスエクスプローラーのビデオ " 200xの場合" をご覧ください。ここでは、作成者がハングを含むいくつかのトラブルシューティングシナリオの診断を示しています。これは、ctrl-scrolllock-scrolllockの強制クラッシュが診断に役立つ場合もあります。

0
kpierce8

私の知る限り、ありません。 Wireshark のようなものを接続して、ネットワークトラフィックで待機しているものを示すものを見つけることができるかどうかを確認できますが、それはかなりやり過ぎであり、何かを見つけることはほとんどありません。

0
Stefan Thyberg

印刷を試みていたので、Windowsネットワーク検索が呼び出され、Wordがすべてのネットワークプリンターが選択のためにマップされるのを待っていたのではないかと思います。
ローカルに接続されたプリンタはありますか?また、共有プリンタを使用するエンタープライズネットワークドメインを使用していますか?

0
nik