.logopen C:\WinDbg解析結果_001.txt *■WinDbg ショートカットを右クリックで「管理者として実行」の事。 *■解析結果を「C:\WinDbg解析結果_001.txt」ファイル書込する。 *■-----------------------------------------------2018/12/15版 *■ 自動解析コマンド群(完全・カーネルメモリダンプ) *■--------------------------------------------------- *■この先頭部に「!analyze -v」コマンドがあります。「STOP エラー」の *■部分を自動解析してくれます。ここが原因である確率は 50% です。 *■「!analyze -v」コマンドより下にあるコマンドで確認できる部分に *■原因のある確率は残りの 50% と考えてください。 *■「STOP エラー」となったthreadの部分で自動解析してくれます。 *■参考:NMIスイッチでの強制ダンプは「STOP 0x80」 *■ キーボードでの強制ダンプは「STOP 0xE2」。これはデバッグ用です。 !analyze -v *■「STOP エラー」となった 年月日 時分秒。 *■「STOP エラー」までの動作時間。 .time *■直近の「trap」トラップ(例外)を表示。 .exr -1 *■「CurrentThread」の IdleThread、IDT、DPC 表示。 *■「DPC」(遅延プロシジャー コール)がある場合はDPC処理停止かも。 !pcr *■カーレント スレッドの最後のエラーを表示。 !gle -all *■「teb」スレッド環境ブロック。 *■         ┌eprocess   ┌ethread *■         └┬kprocess  └┬kthread *■カーネル空間:┌←[Process] →→→[Thread]→┐ *■ユーザ空間 :└→[PEB] ←←←←←←[TEB] ←┘ *■スレッド環境情報;最後に発生したNT_STATUSエラーを確認。 !teb *■「PEB」プロセス環境ブロック。 *■プロセス環境情報;プロセスのパスやロードしたモジュールを確認。 !peb *■ユーザ空間「heap」ヒープ メモリはカーレント プロセスのみ有効です。 !heap *■カーレントCPUの「IRQL」と「IRQカウンタ」。 !prcb *■「STOP エラー」が発生したカーレントthread。 !thread *■上記スレッドでのダンプ実行した時のCPUレジスタ。 r *■「stop エラー」が発生したカーレントprocessのthread全体出力。 !process *■以上が「STOPエラー」が発生したカーレントthread とカーレントprocess *■です。カーレントとは「今、動作している」という意味です。 *■=================================================================== *■実行しているプロセス全体。「Ticks」*15mSec 前に実行。 *■「Ticks」が小さい時、直前に実行し実行頻度が高いかも?。 !stacks *■Asynchronous Procedure Call (APC)待ち行列表示。(非同期) *■アプリに「APC」がある場合「IRP」処理待ちの可能性大。 !apc *■仮想メモリ情報。 !vm *■物理メモリ情報。メモリ枯渇していなかを確認。 !memusage 8 *■メモリ上にロードされたドライバリスト(基本的には上から順番)。 *■「Unloaded modules」で外れたドライバを確認。 *■静電気、ACノイズ、USB接触不良、無線電波妨害などでの外れ確認 *■期待するドライバがロードされているか。 lm *■未完了のIRP(I/O要求パケット)。 *■同じデバイスのIRP累積の場合は I/O不良やドライバ不良の可能性。 *■特に、Disk系のIRPが多量に残っている場合は注意。 !irpfind *■未完了のDPC(遅延プロシージャコール)。 *■残存ありは問題傾向。ここに残っている場合は処理不良を調査。 !dpcs *■「IRQ」の「IDT」(割込テーブル)の一覧を表示。 !idt *■MSモジュールのデータ化け。 *■「0」以外はメモリ空間のデータ化けを疑う事。 *■「!chkimg -lo 50 -d !」で詳細のデータ化けを確認。 !for_each_module !chkimg @#ModuleName *■イベントログに書込めていないI/Oエラーログ。 *■「Cannot read entry」が有る場合はDisk系のエラーが多い。 !errlog *■ドライバ(カーネル空間)のロック。 !deadlock *■カーネル空間でのロック。 *■2件ぐらいはあっても良いが多発は問題傾向。 *■「!thread xxxxxxxx b7」コマンドで関連スレッド表示。 !kdexts.locks *■see Displaying a Critical Section. !ntsdexts.locks *■昔はCPUパッチはマザーボードのBIOSソフトで実施されていた。 *■最近はIPL時にOSに組み込まれたソフトでCPUパッチを実行する。 *■CPUレバルの適用状況を確認する。 *■業務装置ではOSが自動更新されずCPUパッチが古いままが多い。 *■CPUのマイクロコードを確認。 !cpuinfo *■CPU情報。 !sysinfo cpuinfo *■各CPUコアの実行状態。 !ipi *■複数のthreadが同時実行しています。それらthreadをダンプ。 *■これらtheadのいずれかで「STOP エラー」となっている。 *■裏側で動作するthreadに注意。排他問題がないか注意。 *■同じドライバが複数のthreadで同時に残っている場合は注意。 *■「CPU-0」〜「CPU-3」の事例です。もっと有る場合は追加する。 *■「CPU-0」での実行状態やIRQL確認。 ~0s .reload ; !thread; r; !irql *■「CPU-1」での実行状態やIRQL確認。 ~1s .reload ; !thread; r; !irql *■「CPU-2」での実行状態やIRQL確認。 ~2s .reload ; !thread; r; !irql *■「CPU-3」での実行状態やIRQL確認。 ~3s .reload ; !thread; r; !irql *■OSの電源状態。 !poaction *■PnPイベント !pnptriage *■デバイスの接続状態(デバイスマネージャ相当)。 *■各デバイスが正常動作しているか確認できます。 *■WinDbg上で青字の部分をクリックすることで詳細情報を表示。 *■デバイスが外れて再度起動された場合も確認できます。 !devnode 0 1 *■「ndiskd」のdllをロードする。次にミニポート表示。 *■ミニポートに接続されたI/Oを知る。 .load ndiskd !miniports *■システム ファイル キャッシュ メモリを表示。 !filecache *■カーネル空間の「pool」プールメモリ情報。 !poolused *■パワー ポリシィーを表示する。 !popolicy *■Diskに書込されていないイベントログリストを出力。 *■「!wmitrace.strdump」でイベントログのID 一覧を表示します。 *■各ID の詳細イベントログは次のように、手動で追加位して下さい。 *■例:Logger Id 0x07 Named 'EventLog-System' の場合。 *■ ^^この数字を確認 *■「!wmitrace.logdump 7」コマンドで「システムログ」を表示。 !wmitrace.strdump *■イベントログのID = 0x01〜0x0f の事例です。場合によって変更。 * !wmitrace.logdump 1 * !wmitrace.logdump 2 * ■これらは必要に応じて追加のこと。 * !wmitrace.logdump 3 * !wmitrace.logdump 4 * !wmitrace.logdump 5 * !wmitrace.logdump 6 * !wmitrace.logdump 7 * !wmitrace.logdump 8 * !wmitrace.logdump 9 !wmitrace.logdump 0x0a !wmitrace.logdump 0x0b !wmitrace.logdump 0x0c * !wmitrace.logdump 0x0d * !wmitrace.logdump 0x0e * !wmitrace.logdump 0x0f * !wmitrace.logdump 0x10 !wmitrace.logdump 0x11 * !wmitrace.logdump 0x12 * !wmitrace.logdump 0x13 * !wmitrace.logdump 0x14 *■Diskの接続状態や不良傾向を知る(Vista以降で有効)。 *■WinDbg上で[1]と[2] 青字部分をクリックで詳細情報を表示。 *■処理中が多く残っている場合注意。数本の処理中は正常です。 !scsikd.classext *■■■■■■■■■■■■■■■■■■■■■■■■■ *■  手動で実行する部分 *■■■■■■■■■■■■■■■■■■■■■■■■■ *■1: kd> !scsikd.classext (後端のコマンド) *■       ↓ *■* !classext 85a57948 [1,2] HTS541640J9SA00 Paging Disk *■  ■この[1] と[2] を手動でクリックする事。 *■ 読書中のファイル件数を確認。多数あるとDisk問題。 *■解析結果を「C:\WinDbg解析結果_001.txt」ファイル書込する。 .logclose