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

Note

この記事は、プログラマー向けです。 コンピューターを使用中に、ブルー スクリーン エラーが表示された場合は、「ブルー スクリーン エラーのトラブルシューティング」を参照してください。

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 です。 バグ チェックのシンボリック名に関連付けられている停止コードの 16 進値は、「バグ チェック コード リファレンス」に一覧表示されています。

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

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

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

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

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

また、この停止コードの前にあるコードにブレークポイントを設定し、エラーが発生したコードへのシングル ステップ フォワードを試行することもできます。

詳細については、次の記事をご覧ください。

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

WinDbg によるカーネル モード ダンプ ファイルの分析

!analyze 拡張コマンド!analyzeの使用

デフラグ ツール ショー

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

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

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

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

ただし、独自のコードでは発生しないバグ チェックが発生する場合もあります。 その場合、問題の実際の原因を解決できない可能性があるため、目標は問題を回避することです。 可能であれば、障害が発生しているハードウェアまたはソフトウェア コンポーネントを分離して取り除きます。

命令の検証、主要コンポーネントの再インストール、ファイルの日付の検証など、基本的なトラブルシューティング手順で、多くの問題を解決できます。 また、イベント ビューアー、Sysinternals 診断ツール、ネットワーク監視ツールで、これらの問題を分離して解決できることがあります。

関連項目