Debugging Tools for Windows(WinDbg)を導入する(Windows10世代)

最近Windows8.1/WindowsServer2012R2にDebugging Tools for Windowsを導入する機会がありました。Windows7の頃とはいろいろと勝手が違っていたので備忘録として残します。

Windows7/WS2008R2世代のWinDbg導入手順

Debugging Tools for Windows(WinDbg)はWindows SDKに含まれるツールのため、基本的にはDebugging Tools単独でインストールできませんでした。そこでDebugging Tools for Windowsの入手と導入を参考にインストーラを入手していました。

■Debugging Tools for Windowsの入手と導入 – KMCA
http://k-mca.com/column/2013_01/article_20130126_01.html

Windows8/WS2012世代以降のWinDbg導入方法

記事タイトルはWindows10ですが、厳密にはWindows8世代以降のWinDbgダウンロード手順です。下位互換性があるのでどのバージョンでもWindows7など現行OSで利用可能です。

1.WDK、WinDbg、関連ツールのダウンロードにアクセスする
https://developer.microsoft.com/ja-jp/windows/hardware/windows-driver-kit
WinDbg_2016_01

2.「Debugging Tools for Windows (WinDbg)」インストーラをダウンロードする
WinDbg_2016_02

インストーラのファイル名は「sdksetup.exe」。サイズは1.1MB程度。
WinDbg_2016_03

※最新バージョン以外は以下のページからダウンロード可能
https://developer.microsoft.com/ja-jp/windows/downloads/sdk-archive

3.インストーラを起動し、インストールファイルをダウンロードする
WinDbg_2016_04

4.UWP風のスプラッシュが表示される。しばらく待つと一般的なインストーラの画面に切り替わる
WinDbg_2016_05

5.「Download the Windows Software Deve・・・」を選択し、ダウンロードフォルダを指定
WinDbg_2016_06

6.「Windows Kits Privacy」のYes/Noを選択。ここで収集するのはダウンロード情報だけらしいのでYesでも問題ないと思う
WinDbg_2016_07

7.ダウンロードするツールを選択できるので「Debugging Tools for Windows」以外のチェックを外し「Download」ボタンを押すとダウンロードが始まる
WinDbg_2016_08

8.ダウンロードが完了するとこの画面になる
WinDbg_2016_09

9.ダウウンロードしたフォルダからWinDbgインストーラを取り出す
WinDbg_2016_10

10.対象クライアント/サーバでWinDbgインストーラを実行すると一瞬でインストールが完了する
WinDbg_2016_11

11.「Windows Kits」のWinDbg (X64)を起動する。インストールフォルダは「C:\Program Files\Windows Kits\10\Debuggers\x64」
WinDbg_2016_12

ダンプを取ってみる

IIS(w3wp.exe)のダンプファイルを取得します。とりあえず有効化しただけの状態ではw3wp.exeのメモリ使用量は3.7MBでした。
WinDbg_2016_13

次に管理者権限でコマンドプロンプトを起動し以下のコマンドを入力すると、cdb.exe(コマンドラインデバッガー)が起動してw3wp.exeのダンプを20秒置きに合計3回取得します。取得先はc:\dumpです。

mkdir c:\dump
"c:\Program Files\Windows Kits\10\Debuggers\x64\adplus.exe" -hang -pn w3wp.exe -r 3 20 -o c:\dump

ダンプファイルは約43MBx3になりました。ダンプファイルは仮想メモリ使用量と同程度のサイズになるらしいので、これがw3wp.exeが確保したメモリサイズという事でしょうか?
WinDbg_2016_14

なおadplusの使い方についての詳細はマイクロソフトよりIBMのページの方が分かりやすそうです。

■PD Professional : ADPlusによるdumpの取得方法
https://www.ibm.com/developerworks/community/wikis/home/wiki/PD%20Professional/page/ADPlusによるdumpの取得方法?lang=en