7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WinDbg をインストールしてとりあえず使えるところまで設定する方法

Last updated at Posted at 2022-11-02

はじめに

Microsoft が提供するデバッガーである、WinDbg をセットアップして、とりあえず使えるところまで準備する方法の備忘録です。(自分が久しぶりに使う必要に迫られて、初期設定とかすっかり忘れてたので。)

WinDbg で出来ること

多目的デバッガーなので色々できるようなのですが、自分は主にユーザーモードのアプリケーションの解析しか使っていないので、めちゃくちゃ雑に列挙します。

  • クラッシュダンプの解析
  • アプリケーションのライブデバッグ
  • OS そのものの動作のライブデバッグ

WinDbg のインストール方法

Windows SDK のインストーラーに含まれています。

上記サイトより、「インストーラーをダウンロードする」のリンクをクリックし、Windows SDK のインストーラーを入手しましょう。

インストーラーを起動すると、"Select the features you want to change" というチェックボックスが沢山あるダイアログが出てきますので、そのダイアログ内で "Debugging Tools for Windows" の項目のチェックを入れましょう。他の項目はデフォルトではチェックが入っていますが、WinDbg の利用には関係ないので、チェックを外してしまっても差し支えありません。

image.png

その後インストーラーを最後まで完了させたら、WinDbg のセットアップは完了です。
スタートメニューで "WinDbg" と検索すれば、その検索結果から起動できるはずです。

WinDbg の初期設定

Windows アプリケーションのデバッグをするためには、少なくとも Microsoft が公開するデバッグシンボルの設定が必要になりますが、玄人向けツールである WinDbg のデフォルト設定ではシンボルをどこから持ってくるかとかそういう設定はされていません。

そこで、デバッグシンボルの取得先とローカルキャッシュ先の設定をしなければいけないわけですが、これはコマンド一発で完了できるようになっています。

シンボルパスを設定するところまでのステップバイステップ

  1. C ドライブ直下に適当にフォルダを作る (例)"C:\Symbols" など
  2. WinDbg を起動
  3. アタッチ先のプロセスが必要なので適当に notepad.exe とか起動
  4. WinDbg の "File" メニューから、"Attach to a Process" を選択
  5. 開いたダイアログで "Notepad.exe" を選択
  6. "Command" ウィンドウが開くので、一番下のテキストボックス(コマンド入力用の場所)に以下のコマンドを入力
    .symfix c:\Symbols
    
  7. コマンド実行後、ちょっと BUSY 状態で待たされるかもしれませんが、ちょっと待っているとプロンプトが戻ってくるはず
  8. 更にコマンドで以下を実行
    .reload
    .sympath
    
  9. 上記コマンドの実行結果として、以下のような応答が返ってきたら OK
    Symbol search path is: srv*
    Expanded Symbol search path is: SRV*c:\Symbols*https://msdl.microsoft.com/download/symbols
    
  10. ここまでの設定が終わっていたら、"C:\Symbols" フォルダの下に何やら勝手にフォルダーが出来てシンボルがキャッシュされていくはずです。

あとはもう煮るなり焼くなりガンガンデバッグしちゃいましょう!

このあと出来ること

例えばあるアプリケーションがよくクラッシュしたりするとして、クラッシュした瞬間のダンプをとって解析して、どの DLL が悪さをしているのかを特定してみたりとか…。
あとはあるアプリが読み込んでいる DLL のリストなんかも簡単にリストで取ることが出来たりも…。

知れば知るほど Windows アプリのトラブル調査の強者になれるのは間違いないので、クラウド全盛のこの時代ですけど、覚えておいて損はないと思ってます。

例えば、クラッシュダンプを入手した時、またよくクラッシュするアプリにデバッガーをアタッチして動作させておいて、運よくクラッシュした場合に使えそうな自動分析の機能とかもあったりしますよ。

学習リソース

7
8
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
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?