WinDbg: ダンプファイルから基本的な情報を抜き出す一連のコマンド

Windows のダンプファイルから基本的な情報、たとえば「コンピューター名」「ユーザー名」「OS のバージョン」「PC起動日時」「モジュールの一覧」を抜き出す方法について書き留めておきます。本格的な故障解析に入る前に把握しておきたい情報になります。扱うのはカーネルダンプではなくユーザーダンプです。

動作確認環境

  • Windows 11 Home 22H2
  • WinDbg 10.0
  • dumpchk 10.0

ダンプファイルの準備

まずはテスト用のダンプファイルを取得します。
メモ帳を起動し、タスクマネージャーから「メモ帳」ではなく「Notepad.exe」を右クリックして[ダンプファイルの作成]を選択すると、所定の場所にダンプファイル (*.dmp) が生成されます。
(32bit アプリのダンプファイルを取得する場合は、32 ビットのタスクマネージャー「C:\Windows\SysWOW64\Taskmgr.exe」を使ってください。)

このファイルを、WinDbg のメニューから [File]-[Open Crash Dump] で開きます。
(32bit アプリのダンプファイルを開く場合は、32bit 版の WinDbg を使ってください。)

そして、これは個人の好みですが、[Command] ウィンドウから次のコマンドを実行して準備完了です。

0:000> !sym noisy
......
0:000> .symfix c:\symbols
......
0:000> .reload /f
......

「!sym noisy」は、シンボルファイルのダウンロード状況を表示するための指定です。
「.symfix c:\symbols」は、シンボルファイルの格納場所の指定です。
「.reload /f」は、シンボルファイルを強制ロードするための指定です。

では、いろいろ抜き出してみましょう。

ダンプファイルのファイル名

ダンプファイルのファイル名は、「.echo $CurrentDumpFile」で表示されます。

0:000> .echo $CurrentDumpFile
C:\Users\*****\AppData\Local\Temp\Notepad.DMP

※ 「*」は伏字。以下同様。

コンピューター名

ダンプファイルを取得したコンピューターの名前は、「!envvar COMPUTERNAME」で表示されます。

0:000> !envvar COMPUTERNAME
        COMPUTERNAME = DELL******

ユーザー名

Windows へのログオンユーザー名は、「!envvar USERNAME」で表示されます。

0:000> !envvar USERNAME
        USERNAME = ******

OS のバージョン

OS のバージョンは、「vertarget」で表示されます。

0:000> vertarget
Windows 10 Version 22621 MP (8 procs) Free x64
Product: WinNt, suite: SingleUserTS Personal
Edition build lab: 22621.1.amd64fre.ni_release.220506-1250
......

ただし、表示されるのは内部的なビルド番号です。一般的なバージョン名を知るには Web を検索してください。たとえば、「Windows 10 Version 22621」は「Windows 11 22H2」を意味します。

CPU

CPU の種類は「!envvar PROCESSOR_IDENTIFIER」で表示されます。

0:000> !envvar PROCESSOR_IDENTIFIER
        PROCESSOR_IDENTIFIER = Intel64 Family 6 Model 142 Stepping 12, GenuineIntel

「Core(TM) i5-8265U」といった一般的な名称を知るには、Web を検索してください。

ほかに、「!cpuid」も使えます。

0:000> !cpuid
CP  F/M/S  Manufacturer     MHz
 0  6,142,12 <unavailable>   1600
 1  6,142,12 <unavailable>   1600
 2  6,142,12 <unavailable>   1600
 3  6,142,12 <unavailable>   1600
 4  6,142,12 <unavailable>   1600
 5  6,142,12 <unavailable>   1600
 6  6,142,12 <unavailable>   1600
 7  6,142,12 <unavailable>   1600

「F/M/S」は「Family/Model/Stpping」の意味です。8 行表示されているのは、論理プロセッサ数が 8 個あるためです。

物理メモリサイズ

物理メモリサイズを WinDbg のコマンドで取得する方法は不明ですが、windbg.exe と同じディレクトリにインストールされているであろう dumpchk.exe で確認できます。(【追記】後で知りましたが WinDbg の .dumpdebug コマンドで dumpchk.exe と同じ内容を出力できます。)

C:\> dumpchk notepad.dmp
......
Stream 9: type SystemMemoryInfoStream (21), size 000001EC, RVA 00003408
  Revision                   :           1
  Flags                      :         0xf
  BasicInfo
    TimerResolution          :     156,250
    PageSize                 :      0x1000
    NumberOfPhysicalPages    :   2,048,069
  ......

「PageSize(ページサイズ)」の 0x1000(= 4096 = 4KB) と「NumberOfPhysicalPages(物理ページ数)」の 2,048,069 を掛け算した 8GB が、物理メモリのサイズです(2 の累乗ちょうどにならない理由は不明)。
なお、dumpchk コマンドに -y オプションを付けると(例: 「dumpchk -y c:\symbols notepad.dmp」)シンボルファイルが参照されます。

メモリ使用量

当該プロセスのメモリ使用量も dumpchk.exe で取得できます。

C:\> dumpchk notepad.dmp
......
......: type ProcessVmCountersStream (22) ......
    WorkingSetSize         :  0x68d6000
    ......
    PrivateWorkingSetSize  :  0x1925000
    ......

この例では、「プライベートワーキングセット(PrivateWorkingSetSize)」のサイズが 0x1925000 = 26365952 = 約 25MB になっています。
「ワーキングセット(WorkingSetSize)」のサイズは、0x68d6000 = 109928448 = 約 105MB です。
その差の約 80MB が「共有ワーキングセット」のサイズです。

実行ファイル名・引数・カレントディレクトリ

当該プロセスの実行ファイル名(フルパス名)、コマンドライン引数、当該プロセスのカレントディレクトリは、「!peb」で取得できます(dumpchk.exe でも取得できますが、WinDbg に戻ります)。

0:000> !peb
......
    CurrentDirectory:  'C:\Program Files\Microsoft Visual Studio\2022\Community\'
    ......
    ImageFile:    'C:\Program Files\WindowsApps\Microsoft......\Notepad\Notepad.exe'
    CommandLine:  'notepad  c:\tmp\a.txt'
    ......

環境変数

環境変数も「!peb」で取得できます。

0:000> !peb
......
    Environment:  0000020579d45110
        =::=::\
        ALLUSERSPROFILE=C:\ProgramData
        ......
        COMPUTERNAME=DELL******
        ComSpec=C:\WINDOWS\system32\cmd.exe
        DriverData=C:\Windows\System32\Drivers\DriverData
        HOMEDRIVE=C:
        OS=Windows_NT
        Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;******
        PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
        PROCESSOR_ARCHITECTURE=AMD64
        PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 12, GenuineIntel
        PROCESSOR_LEVEL=6
        PROCESSOR_REVISION=8e0c
        ProgramData=C:\ProgramData
        ProgramFiles=C:\Program Files
        ......
        USERNAME=******
        ......

実はこの中に前述の「COMPUTERNAME」「PROCESSOR_IDENTIFIER」「USERNAME」も含まれています。「!envvar」は指定の環境変数の値を抜き出すコマンドです。

IPアドレス

IPアドレスは、私の知っている限りダンプファイルには含まれていません。

ダンプファイル生成日時・PC 起動日時・プロセス起動日時

ダンプファイル生成日時、PC 起動日時、プロセス起動日時は、前述の「vertarget」でわかります。

0:000> vertarget
......
Debug session time: Thu Dec 29 12:30:50.000 2022 (UTC + 9:00)
System Uptime: 3 days 10:20:30.190
Process Uptime: 0 days 0:01:08.000
......

「Debug session time」はダンプファイル生成開始日時です(例外発生日時ではありません)。
PC を起動した日時は、「Debug session time」-「System Uptime」で計算できます。
プロセスを起動した日時は、「Debug session time」-「Process Uptime」で計算できます。

モジュールの一覧と詳細情報

当該プロセス空間にロードされているモジュールの一覧は、「lm」で表示されます。

0:000> lm
start             end                 module name
......
00007ff7`a30b0000 00007ff7`a3134000   Notepad  C (no symbols)           
......
00007ff8`4fa80000 00007ff8`4fb91000   ucrtbase   (pdb symbols)          c:\symbols\ucrtbase.pdb\......
00007ff8`4fba0000 00007ff8`4ff3d000   KERNELBASE   (pdb symbols)        c:\symbols\kernelbase.pdb\......
00007ff8`4ff40000 00007ff8`500a6000   crypt32    (export symbols)       crypt32.dll
00007ff8`500b0000 00007ff8`5014a000   msvcp_win   (pdb symbols)         c:\symbols\msvcp_win.pdb\......
......
00007ff8`51200000 00007ff8`512c3000   kernel32   (pdb symbols)          c:\symbols\kernel32.pdb\......
00007ff8`51320000 00007ff8`514bc000   ole32      (private pdb symbols)  c:\symbols\ole32.pdb\......
00007ff8`514c0000 00007ff8`5184a000   combase    (private pdb symbols)  c:\symbols\combase.pdb\......
00007ff8`51850000 00007ff8`51882000   imm32      (pdb symbols)          c:\symbols\imm32.pdb\......
......

「lmvm」に続けてモジュール名(拡張子を除く)を入力すると、指定のモジュールの詳細な属性、たとえばフルパス名、バージョン、コピーライトが表示されます。
(すべてのモジュールを対象とする場合は、「lmvm *」。)

0:000> lmvm kernel32
Browse full module list
start             end                 module name
00007ff8`51200000 00007ff8`512c3000   kernel32   (pdb symbols)          c:\symbols\kernel32.pdb\1A508D163BEFC4D6F8EBA6B29778C9261\kernel32.pdb
    Loaded symbol image file: kernel32.dll
    Image path: C:\Windows\System32\kernel32.dll
    Image name: kernel32.dll
    Browse all global symbols  functions  data
    Image was built with /Brepro flag.
    Timestamp:        0BD3258D (This is a reproducible build file hash, not a timestamp)
    CheckSum:         000CA223
    ImageSize:        000C3000
    File version:     10.0.22621.963
    Product version:  10.0.22621.963
    File flags:       0 (Mask 3F)
    File OS:          40004 NT Win32
    File type:        2.0 Dll
    File date:        00000000.00000000
    Translations:     0409.04b0
    Information from resource tables:
        CompanyName:      Microsoft Corporation
        ProductName:      Microsoft® Windows® Operating System
        InternalName:     kernel32
        OriginalFilename: kernel32
        ProductVersion:   10.0.22621.963
        FileVersion:      10.0.22621.963 (WinBuild.160101.0800)
        FileDescription:  Windows NT BASE API Client DLL
        LegalCopyright:   © Microsoft Corporation. All rights reserved.

「!dh -a」に続けてモジュール名(拡張子を除く)を入力すると、指定のモジュールのヘッダ情報、インポート関数、エクスポート関数が表示されます。要するに、dumpbin コマンドの /headers, /imports, /exports オプションと同じです。
(すべてのモジュールを対象とする場合は、「!for_each_module “.echo @#ModuleName;!dh -a @#ModuleName”」。)

0:000> !dh -a kernel32

File Type: DLL
FILE HEADER VALUES
    8664 machine (X64)
       7 number of sections
 BD3258D time date stamp Thu Apr 15 12:31:25 1976
  ......

OPTIONAL HEADER VALUES
     20B magic #
   14.30 linker version
   81000 size of code
   41000 size of initialized data
       0 size of uninitialized data
   12720 address of entry point
    1000 base of code
         ----- new -----
00007ff851200000 image base
    1000 section alignment
    1000 file alignment
       3 subsystem (Windows CUI)
   10.00 operating system version
   10.00 image version
   10.00 subsystem version
   C3000 size of image
    1000 size of headers
  ......

_IMAGE_EXPORT_DIRECTORY 00007ff85129e5d0 (size: 0000e8f4)
Name: KERNEL32.dll 
Characteristics: 00000000 Ordinal base: 1.
Number of Functions: 1671. Number of names: 1671. EAT: 00007ff85129e5f8.
   ordinal hint target           name
         1    0          AcquireSRWLockExclusive (forwarded to NTDLL.RtlAcquireSRWLockExclusive)
         2    1          AcquireSRWLockShared (forwarded to NTDLL.RtlAcquireSRWLockShared)
         3    2 00007FF851218DA0 ActivateActCtx
         4    3 00007FF851214A60 ActivateActCtxWorker
         5    4 00007FF851221590 ActivatePackageVirtualizationContext
         6    5 00007FF85125A710 AddAtomA
      ......
      1641 1640 00007FF85126AA80 lstrcat
      1642 1641 00007FF85126AA80 lstrcatA
      1643 1642 00007FF851227670 lstrcatW
      1644 1643 00007FF851217FA0 lstrcmp
      ......

  _IMAGE_IMPORT_DESCRIPTOR 00007ff8512acec4
    api-ms-win-core-rtlsupport-l1-1-0.dll
      00007FF851285360 Import Address Table
      00007FF8512AEF70 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

       00007FF8525D3970    5 RtlCompareMemory
       00007FF8525849A0    D RtlRaiseException
       00007FF8525BC490    6 RtlDeleteFunctionTable
       00007FF852550160   10 RtlUnwindEx
       ......

  _IMAGE_IMPORT_DESCRIPTOR 00007ff8512acf00
    KERNELBASE.dll
      00007FF851283AB0 Import Address Table
      00007FF8512AD6C0 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

       00007FF84FBDB2C0   FA NlsIsUserDefaultLocale
       00007FF84FBE50F0   24 BaseFormatObjectAttributes
       00007FF84FC208B0   D5 GetVolumeNameForVolumeMountPointW
       00007FF84FBD4220  194 lstrcmpiW
       ......

メモリレイアウト

当該プロセス空間のメモリ使用状況は、「!address」や「!address -summary」で表示されます。

0:000> !address

        BaseAddress     EndAddress+1    RegionSize  Type         State       Protect                     Usage
---------------------------------------------------------------------------------------------------------------------
+        0`00000000       0`2ac30000    0`2ac30000               MEM_FREE     PAGE_NOACCESS              Free       
    ......
+       c9`0ee00000      c9`0eef7000    0`000f7000  MEM_PRIVATE  MEM_RESERVE                             Stack      [~20; f78.2d00]
        c9`0eef7000      c9`0eefc000    0`00005000  MEM_PRIVATE  MEM_COMMIT   PAGE_READWRITE|PAGE_GUARD  Stack      [~20; f78.2d00]
    ......
+      205`6ae00000     205`6ae12000    0`00012000  MEM_PRIVATE  MEM_COMMIT   PAGE_READWRITE             Heap       [ID: 0; Handle: 000002056acf0000; Type: SegmentHeap Segment]
       205`6ae12000     205`6ae13000    0`00001000  MEM_PRIVATE  MEM_RESERVE                             Heap       [ID: 0; Handle: 000002056acf0000; Type: SegmentHeap Segment]
    ......
+     7ff7`a30b0000    7ff7`a30b1000    0`00001000  MEM_IMAGE    MEM_COMMIT   PAGE_READONLY              Image      [Notepad; "C:\Program Files\WindowsApps\Microsoft.WindowsNotepad_11.2210.5.0_x64__8wekyb3d8bbwe\Notepad\Notepad.exe"]
      7ff7`a30b1000    7ff7`a30fb000    0`0004a000  MEM_IMAGE    MEM_COMMIT   PAGE_EXECUTE_READ          Image      [Notepad; "C:\Program Files\WindowsApps\Microsoft.WindowsNotepad_11.2210.5.0_x64__8wekyb3d8bbwe\Notepad\Notepad.exe"]
    ......
+     7ff8`4fba0000    7ff8`4fba1000    0`00001000  MEM_IMAGE    MEM_COMMIT   PAGE_READONLY              Image      [KERNELBASE; "C:\Windows\System32\KERNELBASE.dll"]
      7ff8`4fba1000    7ff8`4fd2b000    0`0018a000  MEM_IMAGE    MEM_COMMIT   PAGE_EXECUTE_READ          Image      [KERNELBASE; "C:\Windows\System32\KERNELBASE.dll"]
    ......
+     7fff`edfa3000    7fff`ffff0000    0`1204d000               MEM_FREE     PAGE_NOACCESS              Free       
0:000> !address -summary

--- Usage Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal
Free                                    325     7ffe`bb93c000 ( 127.995 TB)          100.00%
<unknown>                               215        1`2c9d2000 (   4.697 GB)  92.66%    0.00%
Image                                  1149        0`13ded000 ( 317.926 MB)   6.12%    0.00%
Heap                                    264        0`02801000 (  40.004 MB)   0.77%    0.00%
Stack                                    63        0`01500000 (  21.000 MB)   0.40%    0.00%
Other                                    19        0`001c9000 (   1.785 MB)   0.03%    0.00%
TEB                                      21        0`0002a000 ( 168.000 kB)   0.00%    0.00%
PEB                                       1        0`00001000 (   4.000 kB)   0.00%    0.00%

--- Type Summary (for busy) ------ RgnCount ----------- Total Size -------- %ofBusy %ofTotal
MEM_PRIVATE                             464        1`230e1000 (   4.548 GB)  89.72%    0.00%
MEM_IMAGE                              1155        0`146ea000 ( 326.914 MB)   6.30%    0.00%
MEM_MAPPED                              113        0`0cee9000 ( 206.910 MB)   3.99%    0.00%

--- State Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal
MEM_FREE                                325     7ffe`bb93c000 ( 127.995 TB)          100.00%
MEM_RESERVE                             205        1`22d67000 (   4.544 GB)  89.65%    0.00%
MEM_COMMIT                             1527        0`2194d000 ( 537.301 MB)  10.35%    0.00%

--- Protect Summary (for commit) - RgnCount ----------- Total Size -------- %ofBusy %ofTotal
PAGE_READONLY                           636        0`1287a000 ( 296.477 MB)   5.71%    0.00%
PAGE_EXECUTE_READ                       177        0`0c6f2000 ( 198.945 MB)   3.83%    0.00%
PAGE_READWRITE                          535        0`01b61000 (  27.379 MB)   0.53%    0.00%
PAGE_WRITECOPY                          140        0`00d01000 (  13.004 MB)   0.25%    0.00%
PAGE_READWRITE|PAGE_WRITECOMBINE          1        0`00118000 (   1.094 MB)   0.02%    0.00%
PAGE_READWRITE|PAGE_GUARD                21        0`0004f000 ( 316.000 kB)   0.01%    0.00%
PAGE_EXECUTE_READWRITE                   17        0`00018000 (  96.000 kB)   0.00%    0.00%

--- Largest Region by Usage ----------- Base Address -------- Region Size ----------
Free                                    205`7f400000     7def`680b0000 ( 125.935 TB)
<unknown>                              7ff4`eb880000        0`fbf50000 (   3.937 GB)
Image                                  7ff8`2e781000        0`016c9000 (  22.785 MB)
Heap                                    205`7e110000        0`00ef0000 (  14.938 MB)
Stack                                    c9`0d900000        0`000fb000 (1004.000 kB)
Other                                   205`6b260000        0`00181000 (   1.504 MB)
TEB                                      c9`0d6d2000        0`00002000 (   8.000 kB)
PEB                                      c9`0d6d1000        0`00001000 (   4.000 kB)

スレッドの一覧

スレッドの一覧は、「~」で表示されます。

0:000> ~
.  0  Id: f78.6abc Suspend: 0 Teb: 000000c9`0d6d2000 Unfrozen
   1  Id: f78.8ec Suspend: 0 Teb: 000000c9`0d6d4000 Unfrozen
   2  Id: f78.1d18 Suspend: 0 Teb: 000000c9`0d6d6000 Unfrozen
   ......
  20  Id: f78.2d00 Suspend: 0 Teb: 000000c9`0d704000 Unfrozen

スレッド生成日時・CPU 消費時間

現在選択しているスレッドの生成日時や CPU 消費時間は、「.ttime」で表示されます。

0:000> .ttime
Created: Wed Jan  4 22:44:42.088 2023 (UTC + 9:00)
Kernel:  0 days 0:00:00.296
User:    0 days 0:00:00.312

すべてのスレッドを対象とする場合は、「~*e r $tid; .ttime」と入力すればよいでしょう。「~*e」は「すべてのスレッドに対して、後続のコマンドを実行せよ」、「r $tid」は「スレッド ID を表示せよ」の意味です。

0:000> ~*e r $tid; .ttime
$tid=0000000000006abc
Created: Wed Jan  4 22:44:42.088 2023 (UTC + 9:00)
Kernel:  0 days 0:00:00.296
User:    0 days 0:00:00.312
$tid=00000000000008ec
Created: Wed Jan  4 22:44:42.144 2023 (UTC + 9:00)
Kernel:  0 days 0:00:00.000
User:    0 days 0:00:00.000
$tid=0000000000001d18
Created: Wed Jan  4 22:44:42.144 2023 (UTC + 9:00)
Kernel:  0 days 0:00:00.000
User:    0 days 0:00:00.015
......
$tid=0000000000002d00
Created: Wed Jan  4 22:44:47.469 2023 (UTC + 9:00)
Kernel:  0 days 0:00:00.015
User:    0 days 0:00:00.000

なお、同等の情報が「!runaway 7」でも取得できます。末尾の数字 7(二進数の 111)はフラグであり、「ユーザーモードでの消費時間」「カーネルモードでの消費時間」「スレッド生成からの経過時間」を表示せよと、という意味になります。

0:000> !runaway 7

 User Mode Time
  Thread       Time
    0:6abc     0 days 0:00:00.312
   15:698c     0 days 0:00:00.046
   12:47a0     0 days 0:00:00.046
   ......
    1:8ec      0 days 0:00:00.000

 Kernel Mode Time
  Thread       Time
    0:6abc     0 days 0:00:00.296
    5:179c     0 days 0:00:00.125
   12:47a0     0 days 0:00:00.109
   ......
    1:8ec      0 days 0:00:00.000

 Elapsed Time
  Thread       Time
    0:6abc     0 days 0:00:32.911
    1:8ec      0 days 0:00:32.855
    2:1d18     0 days 0:00:32.855
   ......
   20:2d00     0 days 0:00:27.530

スレッドの詳細情報

現在選択しているスレッドの詳細情報(スレッド環境ブロックの情報)は、「!teb」で表示されます。
(すべてのスレッドを対象とする場合は、「~*e !teb」。)

0:000> !teb
TEB at 000000c90d6d2000
    ExceptionList:        0000000000000000
    StackBase:            000000c90d900000
    StackLimit:           000000c90d8f4000
    ......
    SubSystemTib:         0000000000000000
    FiberData:            0000000000001e00
    ArbitraryUserPointer: 0000000000000000
    Self:                 000000c90d6d2000
    EnvironmentPointer:   0000000000000000
    ClientId:             0000000000000f78 . 0000000000006abc
    RpcHandle:            0000000000000000
    Tls Storage:          000002056ae87300
    PEB Address:          000000c90d6d1000
    LastErrorValue:       0
    LastStatusValue:      c0000034
    Count Owned Locks:    0
    HardErrorMode:        0

「StackBase」と「StackLimit」はスタックの範囲、「ClientId」はプロセス ID とスレッド ID、「LastErrorValue」は最後のエラーコードです。

スレッドのコールスタック

現在選択しているスレッドのコールスタックは、「kv」コマンドで表示されます。
(すべてのスレッドを対象とする場合は、「~*kv」。)

0:000> kv
 # Child-SP          RetAddr           : Args to Child            : Call Site
00 000000c9`0d8ffb18 00007ff8`5065511a : 00000000`000001b7 ...... : win32u!NtUserGetMessage+0x14
01 000000c9`0d8ffb20 00007ff7`a30c9527 : 00000000`00cb07eb ...... : user32!GetMessageW+0x2a
02 000000c9`0d8ffb80 00007ff7`a30f61ca : 00000000`00000001 ...... : Notepad+0x19527
03 000000c9`0d8ffc50 00007ff8`512126bd : 00000000`00000000 ...... : Notepad+0x461ca
04 000000c9`0d8ffc90 00007ff8`5258dfb8 : 00000000`00000000 ...... : kernel32!BaseThreadInitThunk+0x1d
05 000000c9`0d8ffcc0 00000000`00000000 : 00000000`00000000 ...... : ntdll!RtlUserThreadStart+0x28

おわりに

まとめると、次の一連のコマンドを実行するとこれまでに書いた情報がひととおり「c:\tmp\dump.txt」に格納されることになります。

!sym noisy
.symfix c:\symbols
.reload /f
.logopen c:\tmp\dump.txt
.echo $CurrentDumpFile
!envvar COMPUTERNAME
!envvar USERNAME
vertarget
!envvar PROCESSOR_IDENTIFIER
!cpuid
.shell -ci ".echo \"$CurrentDumpFile\"" more > %temp%\a.txt & cmd /v:on /c "set /p a=<%temp%\a.txt & dumpchk.exe !a! & del %temp%\a.txt"
!peb
lm
lmvm*
!for_each_module ".echo @#ModuleName;!dh -a @#ModuleName"
!address
!address -summary
~
~*e r $tid; .ttime
!runaway 7
~*e !teb
~*kv
.logclose

ここで、「.logopen」は WinDbg の画面出力をログファイルにも出力するためのコマンド、「.logclose」は同ログを閉じるコマンドになります。
「dumpchk.exe」は普通にコマンドプロンプトから実行してもいいのですが、「.shell」コマンドを使って無理やり WinDbg の中から実行してみました(【追記】後で知りましたが WinDbg の .dumpdebug コマンドで dumpchk.exe と同じ内容を出力できます。)。