最近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
2.「Debugging Tools for Windows (WinDbg)」インストーラをダウンロードする
インストーラのファイル名は「sdksetup.exe」。サイズは1.1MB程度。
※最新バージョン以外は以下のページからダウンロード可能
https://developer.microsoft.com/ja-jp/windows/downloads/sdk-archive
3.インストーラを起動し、インストールファイルをダウンロードする
4.UWP風のスプラッシュが表示される。しばらく待つと一般的なインストーラの画面に切り替わる
5.「Download the Windows Software Deve・・・」を選択し、ダウンロードフォルダを指定
6.「Windows Kits Privacy」のYes/Noを選択。ここで収集するのはダウンロード情報だけらしいのでYesでも問題ないと思う
7.ダウンロードするツールを選択できるので「Debugging Tools for Windows」以外のチェックを外し「Download」ボタンを押すとダウンロードが始まる
8.ダウンロードが完了するとこの画面になる
9.ダウウンロードしたフォルダからWinDbgインストーラを取り出す
10.対象クライアント/サーバでWinDbgインストーラを実行すると一瞬でインストールが完了する
11.「Windows Kits」のWinDbg (X64)を起動する。インストールフォルダは「C:\Program Files\Windows Kits\10\Debuggers\x64」
ダンプを取ってみる
IIS(w3wp.exe)のダンプファイルを取得します。とりあえず有効化しただけの状態ではw3wp.exeのメモリ使用量は3.7MBでした。
次に管理者権限でコマンドプロンプトを起動し以下のコマンドを入力すると、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が確保したメモリサイズという事でしょうか?
なおadplusの使い方についての詳細はマイクロソフトよりIBMのページの方が分かりやすそうです。
■PD Professional : ADPlusによるdumpの取得方法
https://www.ibm.com/developerworks/community/wikis/home/wiki/PD%20Professional/page/ADPlusによるdumpの取得方法?lang=en