次の方法で共有


バグ チェックのブルー スクリーン データの分析

この記事はプログラマ向けです。 コンピューターの使用中にブルー スクリーン エラー コードを受け取ったお客様の場合は、「ブルー スクリーン エラーのトラブルシューティングを行う」を参照してください。

IT プロフェッショナルまたはサポート エージェントの場合は、「 停止エラーまたはブルー スクリーン エラーの高度なトラブルシューティング 」を参照してください。

停止コード・パラメーターの収集

各バグ チェック コードには、情報を提供する 4 つのパラメーターが関連付けられています。 パラメーターについては、各停止コードの バグ チェック コード リファレンス で説明されています。

4 つのストップ コード パラメーターを収集する方法は複数あります。

  • イベントビューアでWindowsシステムログを調べます。 バグ チェックのイベント プロパティには、4 つの停止コード パラメーターが一覧表示されます。

  • 生成されたダンプ ファイルを読み込み、デバッガーをアタッチした 状態で !analyze コマンドを使用します。 詳細については、「 WinDbg を使用したカーネル モード ダンプ ファイルの分析」を参照してください。

  • 障害が発生している PC にカーネル デバッガーを接続します。 停止コードが発生すると、デバッガー出力には、停止コードの 16 進数の値の後に 4 つのパラメーターが含まれます。

    *******************************************************************************
    *                                                                             *
    *                        Bugcheck Analysis                                    *
    *                                                                             *
    *******************************************************************************
    
    Use !analyze -v to get detailed debugging information.
    
    BugCheck 9F, {3, ffffe000f38c06a0, fffff803c596cad0, ffffe000f46a1010}
    
    Implicit thread is now ffffe000`f4ca3040
    Probably caused by : hidusb.sys
    

バグ チェックのシンボリック名

DRIVER_POWER_STATE_FAILURE はバグ チェックのシンボリック名で、バグ チェック コード 9F が関連付けられています。 バグ チェックのシンボリック名に関連付けられている停止コード hex 値は、 バグ チェック コード リファレンスに記載されています。

デバッガーからバグ チェック情報を読み取る

デバッガーがアタッチされていて、PC でデバッグが有効になっている場合、バグ チェックによりターゲット コンピューターがデバッガーに割り込みます。 この場合、ブルースクリーンがすぐに表示されないことがあります。 このクラッシュに関する完全な詳細はデバッガーに送信され、デバッガー ウィンドウに表示されます。 この情報を 2 回目に表示するには、 .bugcheck (バグ チェック データの表示) コマンドまたは !analyze 拡張コマンドを使用します。 デバッグを有効にする方法については、「 WinDbg の概要 (Kernel-Mode)」を参照してください。

カーネルのデバッグとクラッシュダンプ分析

カーネル デバッグは、他のトラブルシューティング手法が失敗した場合や、問題が繰り返し発生する場合に特に役立ちます。 エラー メッセージのバグ チェック情報セクションに正確なテキストをキャプチャし忘れないでください。 複雑な問題を切り分け、実行可能な回避策を開発するには、障害につながる正確なアクションを記録すると便利です。

!analyze デバッグ拡張機能は、バグ チェックに関する情報を表示し、根本原因の特定に役立ちます。

また、この停止コードに至るまでのコードにブレークポイントを設定し、エラーが発生しているコードに 1 ステップ進むように試みることもできます。

詳細については、次の記事を参照してください。

Windows デバッガー (WinDbg) を使用したクラッシュ ダンプ分析

WinDbg を使用したカーネル モード ダンプ ファイルの分析

!analyze 拡張機能と!analyze の使用

デフラグ ツールには、次の情報が表示されます

ドライバー検証ツールを使用して情報を収集する

ブルースクリーンの約4分の3は、ドライバーの過失が原因であると推定されています。 ドライバー検証ツールは、ドライバーの動作を調べるためにリアルタイムで実行されるツールです。 たとえば、ドライバー検証ツールは、メモリ プールなどのメモリ リソースの使用を確認します。 ドライバー コードの実行でエラーが見つかった場合は、ドライバー コードのその部分をさらに精査できるように、事前に例外を作成します。 ドライバー検証ツール マネージャーは Windows に組み込まれており、すべての Windows PC で使用できます。 ドライバー検証ツール マネージャーを起動するには、コマンド プロンプトで 「検証ツール 」と入力します。 確認するドライバーを構成できます。 ドライバーを検証するコードは、実行時にオーバーヘッドを追加するため、検証するドライバーの数はできるだけ少なくしてください。 詳細については、「ドライバーの検証ツール」を参照してください。

ソフトウェアエンジニア向けのヒント

記述したコードの結果としてバグ チェックが発生した場合は、カーネル デバッガーを使用して問題を分析し、コード内のバグを修正する必要があります。 詳細については、「 バグ チェック コード リファレンス 」セクションの個々のバグ チェック コードを参照してください。

ただし、独自のコードによって引き起こされていないバグ チェックが発生する場合もあります。 この場合、問題の実際の原因を修正できない可能性が高いため、問題を回避することを目標とする必要があります。 可能であれば、障害が発生しているハードウェアまたはソフトウェア コンポーネントを特定して取り外します。

多くの問題は、手順の確認、主要コンポーネントの再インストール、ファイルの日付の確認など、基本的なトラブルシューティング手順で解決できます。 また、イベント ビューアー、Sysinternals 診断ツール、およびネットワーク監視ツールによって、これらの問題が切り分けられ、解決される場合があります。

こちらも参照ください