troushoo

Application Verfier : アプリのトラブルシューティングに使えるツール

  Application Verfier : アプリのトラブルシューティングに使えるツール

概要

今回はApplication Verifier を紹介します。
Application Verifier はMicrosoft から無料で公開されているツールで、アプリケーションのトラブルシューティングに使えるツールです。

内容

Application Verifier とは?
Application Verifier とは、Microsoft から無料で公開されているツールで、通常のアプリテストでは解決できないようなトラブルシューティングを行うことができるようになります。

Application Verifier のダウンロード・インストール
Application Verifier はWindows SDK に入っております。インストールは2・3分程度あれば終わります。

1. Microsoft のページより、Windows SDK をダウンロードします。
Application Verifier のダウンロード

2. ウィザードに従いインストールします。
途中、”Application Verifier For Windows” にチェックを入れてください。
Application Verifier のインストール

Application Verifier の使用方法
以下、「アクティブなクリティカルセクションを持つDLL がアンロードされた」ことをApplication Verifier を用いて調査します。
この「アクティブなクリティカルセクションを持つDLL がアンロードされ」ると状態になると、アプリのデッドロックにつながることもあるのですが、通常のアプリテストではこの状態は検出できません。

1. スタートメニューにあるApplication Verifier を起動します。
Application Verifier を起動

2. “File” –> “Add Application” をクリックし、テストを実行したいアプリケーションを選択します。
Add Application
テストしたいアプリを選択

3. “Tests” の部分の”Basic” –> “Locks” にチェックを入れ、”Save” をクリックします。
Locks にチェックを入れる

4. “デバッガー配下でアプリを動かすとベストな結果が得られます” といった旨のダイアログが表示されます。
To Achieve the best results please test アプリ名 while running it under a debugger.

5. WinDbg を起動し、”File” –> “Open Executable” からテストしたいアプリを実行します。
WinDbg を起動し、テストしたいアプリを実行する

6. アプリが「アクティブなクリティカルセクションを持つDLL がアンロードされ」ると状態になると、WinDbg に制御が移り、Application Verifier による詳細情報が表示されます。
Application Verifier による詳細情報が表示される

7. クリティカルセクションを初期化したスタックを調べるために、表示された情報に従いdps "address" を実行します。(= 上図の”今回はここに注目” の部分)
結果、クリティカルセクションを初期化したスタックやソースコードの位置がわかります。
すなわち、dll がアンロードされるときにアクティブであったクリティカルセクションがわかります。
問題のクリティカルセクションを初期化した際のコールスタックがわかる

この情報はApplication Verifier を有効にしていないとわかりません。
この情報をもとに、ソースコードの修正が可能になります。


情報元
How to: Debug critical section issues usingAppVerifier (英語)
関連記事
Driver Verifier : ドライバーのトラブルシューティングに使えるツール


  1. 2013/11/03(日) 21:40:49|
  2. WinDbg
  3. | トラックバック:0
  4. | コメント:0
<<IIS 8.5 の新機能 : ETW を用いたIIS のログ | ホーム | Wireshark での解析時に役立つTips (4)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://troushoo.blog.fc2.com/tb.php/141-f8e69fa8
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (92)
ネットワーク (76)
Visual Studio (56)
SOS・Psscor2/Psscor4 (25)
WinDbg (25)
Linux (23)
Azure (17)
Tips (20)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する