LoginSignup
4
0

WindowsのMinidump解析でChatGPT使ったら良かった

Posted at

事の経緯

常時稼働させるためのWindowsPCを新たに購入して使い始めたものの、数時間放置すると何故か停止してしまう。
使っている間は問題ないし、初期設定をしていた時は落ちなかった気がする。
しかも落ちたときにファンが止まっているのに通電しているようで、火が出そうなくらい熱くなっていて本気で火事の心配になる。

BIOSの設定をいじったり、いくつか問題の切り分けを模索するが改善せず。

諦めかけつつイベントビューアーを眺めていたとき、ダンプファイルが生成されていることに気がつく。
ダンプの解析はハードル高いかも、、と思いながらも一縷の望みにかけてダンプ解析やってみた。

というのが経緯です。

やったこと

  1. イベントビューアーにMinidumpとあったので「Windows minidump」のキーワードでググってみる。
  2. Windowsの機能でクラッシュ時にメモリダンプすることを知る。
  3. ダンプファイルの保存先は%SystemRoot%\MinidumpC:\WINDOWS\Minidump)と知る。→エクスプローラーで見ると確かにファイルがある。
    64c1b79acc4e88ba9c326612.png
  4. ダンプファイルを読み取るツールがいくつかあることを知る。
  5. Microsoft WinDbgをMicrosoft Storeからインストール。
    64c1b888cc4e88ba9c326782.png
  6. WinDbgを起動し、ファイルOpen dump fileC:\WINDOWS\Minidump配下に出力されているダンプファイルを読み込む。
  7. !analyze -vのリンクをクリックし解析を実行。
    64c1b949cc4e88ba9c32682f.png
  8. 以下の出力がされた。(うわ~読みたくない~、、と思った)
    8: kd> !analyze -v
    *******************************************************************************
    *                                                                             *
    *                        Bugcheck Analysis                                    *
    *                                                                             *
    *******************************************************************************
    
    WIN32K_POWER_WATCHDOG_TIMEOUT (19c)
    Win32k did not turn the monitor on in a timely manner.
    Arguments:
    Arg1: 0000000000000050, Calling monitor driver to power on.
    Arg2: ffffc185bd8852c0, Pointer to the power request worker thread.
    Arg3: 0000000000000000
    Arg4: 0000000000000000
    
    Debugging Details:
    ------------------
    
    *** WARNING: Unable to verify timestamp for amdkmdag.sys
    
    KEY_VALUES_STRING: 1
    
        Key  : Analysis.CPU.mSec
        Value: 1031
    
        Key  : Analysis.Elapsed.mSec
        Value: 2190
    
        Key  : Analysis.IO.Other.Mb
        Value: 9
    
        Key  : Analysis.IO.Read.Mb
        Value: 0
    
        Key  : Analysis.IO.Write.Mb
        Value: 30
    
        Key  : Analysis.Init.CPU.mSec
        Value: 171
    
        Key  : Analysis.Init.Elapsed.mSec
        Value: 65423
    
        Key  : Analysis.Memory.CommitPeak.Mb
        Value: 100
    
        Key  : Bugcheck.Code.LegacyAPI
        Value: 0x19c
    
        Key  : Dump.Attributes.AsUlong
        Value: 1808
    
        Key  : Dump.Attributes.DiagDataWrittenToHeader
        Value: 1
    
        Key  : Dump.Attributes.ErrorCode
        Value: 0
    
        Key  : Dump.Attributes.KernelGeneratedTriageDump
        Value: 1
    
        Key  : Dump.Attributes.LastLine
        Value: Dump completed successfully.
    
        Key  : Dump.Attributes.ProgressPercentage
        Value: 0
    
        Key  : Failure.Bucket
        Value: 0x19C_DRVSETMONITORPOWERSTATE_HANG_amdkmdag!unknown_function
    
        Key  : Failure.Hash
        Value: {837c57be-432f-85ea-743f-9e9d66af2d6b}
    
        Key  : Hypervisor.Enlightenments.ValueHex
        Value: 1497cf94
    
        Key  : Hypervisor.Flags.AnyHypervisorPresent
        Value: 1
    
        Key  : Hypervisor.Flags.ApicEnlightened
        Value: 1
    
        Key  : Hypervisor.Flags.ApicVirtualizationAvailable
        Value: 0
    
        Key  : Hypervisor.Flags.AsyncMemoryHint
        Value: 0
    
        Key  : Hypervisor.Flags.CoreSchedulerRequested
        Value: 0
    
        Key  : Hypervisor.Flags.CpuManager
        Value: 1
    
        Key  : Hypervisor.Flags.DeprecateAutoEoi
        Value: 0
    
        Key  : Hypervisor.Flags.DynamicCpuDisabled
        Value: 1
    
        Key  : Hypervisor.Flags.Epf
        Value: 0
    
        Key  : Hypervisor.Flags.ExtendedProcessorMasks
        Value: 1
    
        Key  : Hypervisor.Flags.HardwareMbecAvailable
        Value: 1
    
        Key  : Hypervisor.Flags.MaxBankNumber
        Value: 0
    
        Key  : Hypervisor.Flags.MemoryZeroingControl
        Value: 0
    
        Key  : Hypervisor.Flags.NoExtendedRangeFlush
        Value: 0
    
        Key  : Hypervisor.Flags.NoNonArchCoreSharing
        Value: 1
    
        Key  : Hypervisor.Flags.Phase0InitDone
        Value: 1
    
        Key  : Hypervisor.Flags.PowerSchedulerQos
        Value: 0
    
        Key  : Hypervisor.Flags.RootScheduler
        Value: 0
    
        Key  : Hypervisor.Flags.SynicAvailable
        Value: 1
    
        Key  : Hypervisor.Flags.UseQpcBias
        Value: 0
    
        Key  : Hypervisor.Flags.Value
        Value: 4853999
    
        Key  : Hypervisor.Flags.ValueHex
        Value: 4a10ef
    
        Key  : Hypervisor.Flags.VpAssistPage
        Value: 1
    
        Key  : Hypervisor.Flags.VsmAvailable
        Value: 1
    
        Key  : Hypervisor.RootFlags.AccessStats
        Value: 1
    
        Key  : Hypervisor.RootFlags.CrashdumpEnlightened
        Value: 1
    
        Key  : Hypervisor.RootFlags.CreateVirtualProcessor
        Value: 1
    
        Key  : Hypervisor.RootFlags.DisableHyperthreading
        Value: 0
    
        Key  : Hypervisor.RootFlags.HostTimelineSync
        Value: 1
    
        Key  : Hypervisor.RootFlags.HypervisorDebuggingEnabled
        Value: 0
    
        Key  : Hypervisor.RootFlags.IsHyperV
        Value: 1
    
        Key  : Hypervisor.RootFlags.LivedumpEnlightened
        Value: 1
    
        Key  : Hypervisor.RootFlags.MapDeviceInterrupt
        Value: 1
    
        Key  : Hypervisor.RootFlags.MceEnlightened
        Value: 1
    
        Key  : Hypervisor.RootFlags.Nested
        Value: 0
    
        Key  : Hypervisor.RootFlags.StartLogicalProcessor
        Value: 1
    
        Key  : Hypervisor.RootFlags.Value
        Value: 1015
    
        Key  : Hypervisor.RootFlags.ValueHex
        Value: 3f7
    
    
    BUGCHECK_CODE:  19c
    
    BUGCHECK_P1: 50
    
    BUGCHECK_P2: ffffc185bd8852c0
    
    BUGCHECK_P3: 0
    
    BUGCHECK_P4: 0
    
    FILE_IN_CAB:  072623-19546-01.dmp
    
    TAG_NOT_DEFINED_202b:  *** Unknown TAG in analysis list 202b
    
    
    DUMP_FILE_ATTRIBUTES: 0x1808
      Kernel Generated Triage Dump
    
    BLACKBOXBSD: 1 (!blackboxbsd)
    
    
    BLACKBOXNTFS: 1 (!blackboxntfs)
    
    
    BLACKBOXPNP: 1 (!blackboxpnp)
    
    
    BLACKBOXWINLOGON: 1
    
    CUSTOMER_CRASH_COUNT:  1
    
    PROCESS_NAME:  csrss.exe
    
    FAULTING_THREAD:  ffffc185bd8852c0
    
    STACK_TEXT:  
    ffffab85`2d8ca590 fffff803`2ae40925     : ffffd401`e1651180 00000000`00000000 ffffc185`ac408040 ffffd401`e1651180 : nt!KiSwapContext+0x76
    ffffab85`2d8ca6d0 fffff803`2ae41d47     : ffffab85`2d8cab98 ffffc185`b6cf6710 ffffc185`b6e7ea90 00000000`00000000 : nt!KiSwapThread+0xb05
    ffffab85`2d8ca820 fffff803`2ae44396     : 00000000`00000000 00000000`00000001 00000000`00000000 00000000`00000000 : nt!KiCommitThreadWait+0x137
    ffffab85`2d8ca8d0 fffff803`89fb32cd     : ffffc185`d1f027c0 ffffc185`d1f027c0 ffffab85`2d8cad89 ffffab85`2d8caed4 : nt!KeWaitForSingleObject+0x256
    ffffab85`2d8cac70 ffffc185`d1f027c0     : ffffc185`d1f027c0 ffffab85`2d8cad89 ffffab85`2d8caed4 00000000`00000000 : amdkmdag+0x1f932cd
    ffffab85`2d8cac78 ffffc185`d1f027c0     : ffffab85`2d8cad89 ffffab85`2d8caed4 00000000`00000000 ffffab85`2d8caed4 : 0xffffc185`d1f027c0
    ffffab85`2d8cac80 ffffab85`2d8cad89     : ffffab85`2d8caed4 00000000`00000000 ffffab85`2d8caed4 ffffc185`b6ee98a0 : 0xffffc185`d1f027c0
    ffffab85`2d8cac88 ffffab85`2d8caed4     : 00000000`00000000 ffffab85`2d8caed4 ffffc185`b6ee98a0 fffff803`89deade2 : 0xffffab85`2d8cad89
    ffffab85`2d8cac90 00000000`00000000     : ffffab85`2d8caed4 ffffc185`b6ee98a0 fffff803`89deade2 00000000`00003e80 : 0xffffab85`2d8caed4
    
    
    SYMBOL_NAME:  amdkmdag+1f932cd
    
    MODULE_NAME: amdkmdag
    
    IMAGE_NAME:  amdkmdag.sys
    
    STACK_COMMAND:  .process /r /p 0xffffc185bff14140; .thread 0xffffc185bd8852c0 ; kb
    
    BUCKET_ID_FUNC_OFFSET:  1f932cd
    
    FAILURE_BUCKET_ID:  0x19C_DRVSETMONITORPOWERSTATE_HANG_amdkmdag!unknown_function
    
    OSPLATFORM_TYPE:  x64
    
    OSNAME:  Windows 10
    
    FAILURE_ID_HASH:  {837c57be-432f-85ea-743f-9e9d66af2d6b}
    
    Followup:     MachineOwner
    ---------
    
  9. ChatGPTに投げてみる。
    プロンプト
    Windows PCが突然停止し、minidumpが生成されました。
    このダンプファイルをWinDbgツールにかけたところ、以下の出力が得られました。
    障害の原因を調べてください。
    
    WinDbgのメッセージ:
    8: kd> !analyze -v
    *******************************************************************************
    *                                                                             *
    *                        Bugcheck Analysis                                    *
    *                                                                             *
    *******************************************************************************
    
    WIN32K_POWER_WATCHDOG_TIMEOUT (19c)
    ~~以下略~~
    
  10. ChatGPT の回答
    WinDbgの分析によると、この問題はバグチェックコード`WIN32K_POWER_WATCHDOG_TIMEOUT (19c)`に関連しています。
    これは、Win32kがモニターをタイムリーにオンにできなかったことを示しています。特に問題となっているのは、
    `amdkmdag.sys`というAMDのグラフィックドライバーファイルです。このファイルに関連する操作
    (おそらくモニターの電源をオンにする操作)がタイムリーに完了せず、システムがクラッシュした可能性があります。
    
    解決策として以下の手順を試してみてください。
    
    1. **グラフィックカードドライバのアップデート:** 最新のドライバが存在するかを確認し、
      存在する場合はアップデートを行います。
      AMDの公式ウェブサイトやデバイスマネージャーからドライバーのアップデートを確認できます。
    
    2. **グラフィックカードドライバの再インストール:** もし最新のドライバに更新しても問題が解決しない場合は、
      グラフィックカードのドライバをアンインストールし、再度インストールし直すことを試みてください。
    
    3. **Windowsのアップデート:** Windowsが最新の状態であることを確認してください。
      Windows Updateを通じて最新のパッチやアップデートを適用します。
    
    4. **ハードウェアのトラブルシューティング:** 物理的なハードウェアに問題がある可能性もあります。
      可能であれば、別のモニターを接続して問題が続くか確認してみてください。
      また、グラフィックカード自体が故障している可能性もあります。
    
    以上の手順を試しても問題が解決しない場合は、専門家に相談するか、さらに詳細なシステムの診断が必要かもしれません。
    
  11. 少し癖のあるディスプレイにUSB→HDMIで繋いでいる部分が怪しそう。。
    それを外したらクラッシュしなくなりました!!🙌

今回の教訓

その1:グラボ周りはOSのクラッシュにつながる可能性が高いと再認識。特に高解像度&デュアル(トリプル)のように負荷がかかる時は注意。

その2:Minidump→WinDbg→ChatGPT の解析は最強!👍
ブルースクリーンや謎のクラッシュ時に思い出そう。
WinDbgは他にも使いこなせると便利そう。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0