BT

Rodney Viana氏の.NETデバッグ用WinDbgエクステンション

| 作者: Jonathan Allen フォローする 530 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2013年11月18日. 推定読書時間: 2 分 |

原文(投稿日:2013/11/08)へのリンク

.NETアプリケーションの実行が失敗したとき,多くの場合はメモリダンプが残るだけである。Visual Studioではメモリダンプを扱えないので,代わりにWinDbgというツールを使わなければならない。このとき合わせて使用されるのがSOS.dllPsscor4.dllといった,.NET固有の詳細情報を取得するエクステンションだ。これらはパワフルではあるが使用が難しいので,時には開発者自身がエクステンションを作ることもある。そのような開発者のひとり,Rodney Viana氏がnetext 1.6.1をオープンソースプロジェクトとしてリリースした。

netextのユニークな部分は,SQLライクな文法を使ってヒープの内容を問合せできることだ。例えば,最近発生したWeb要求のエラー一覧を見たいとしよう。HttpRequestオブジェクトはキャッシュされているので,次のような指示を使ってエラー終了したクエリを探すことができる:

!wfrom -type *.HttpContext |
where ( ($contains(_request._url.m_String, "http:")) && (_response._statuscode != 0n200) )
select $addr(), _request._url.m_String, _response._statusCode

サポートされるコマンドは次のものだ:

オブジェクトの詳細を表示するコマンド

  • !wdo - その時点でのオブジェクトまたは配列を,GACまたはStackから表示する。
  • !wselect - その時点でのオブジェクトあるいは配列の全項目のフィールド(とレベルフィールド)を表示する。
  • !wfrom - ヒープオブジェクトのSQLライクな解析を実行する。比較,式評価,インデックス付きのフィルタリングなどの操作が可能だ。

オブジェクトの列挙

  • !windex – HttpContext型のオブジェクトというように,異なるフィルタに基づくオブジェクトのインデックス付けと表示を行う。
  • !wstack – 独自スタック上のオブジェクトをダンプする。
  • !wheap – インデックスを伴わないオブジェクトの一覧と,ヒープの限定的なサンプリング情報を表示する。
  • !wgchandles – GCルートハンドルをダンプする。

特殊な機能

  • !wdict – ディクショナリオブジェクトを表示する。
  • !whash – ハッシュテーブルオブジェクトを表示する。
  • !whttp – HttpContextオブジェクト一覧を表示する。
  • !wconfig – メモリ内の .configファイル行をすべて表示する。
  • !wservice – WCFサービスオブジェクト一覧を表示する。
  • !weval – 式リストを評価する。
  • !wclass – "refrect" されたクラス定義 (フィールド,プロパティ,メソッド) を表示する。

さらにアグリゲーションや文字列, XML,配列,リフレクションを操作する関数もサポートする。

NetextはGNU General Public License バージョン2を適用して公開されている。Rodney Viana氏はMicrosoftの社員だが,この開発は氏の個人的なプロジェクトとして見なされていて,Microsoftのサポートは受けていない。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT