のアーカイブ

2008年のアーカイブ

WinDbgおよびSOSでSilverlightのデバッグ

2008年12月19日 コメントなし

はじめ

以前の記事でのVisual StudioでSilverlightのデバッグ 、私は、Visual Studioは、パワフルでマネージアプリケーションをデバッグするための最も便利なツールであることを実証した。 だけでなく、オプション場合は、一部の高度なデバッグシナリオのために、メモリリーク、デッドロック、暴走プロセス/スレッド、カーネルのデバッグ、および高度なリモート/クラッシュ/ UIのデバッグなどのように、WinDbgの(またはCDB、NTSD、KD)は通常、好ましい。

Windows用デバッグツール

概要

WinDbgは、の一部であり、Windowsのためのデバッグツールパッケージ:

image_thumb5

WinDbgがGUIプログラムですが、それは主に(と多くの場合あり)KD、CDBとNTSDのようなコマンドラインのデバッガとして使用され、同じデバッグエンジンとコマンドを共有している。 それは、特によくシステム/ドライバおよび他のオペレーティングシステムコンポーネントのような低レベルのデバッグに最適な超強力で拡張可能です。 それは、ハードウェアの知識、オペレーティングシステム、およびツールセットを最大限に活用するためにコンパイラを必要とします。 それは偉大な(または完全な、私が言う必要があります :-) ネイティブデバッグのために、その広範かつ拡張可能なコマンドとグラフィックユーザーインターフェイスを持つ。 マネージデバッグのサポートは、SOSデバッグ拡張機能を経由している、ネイティブデバッグほど良くはありませんが、非常に大きな価値は、マネージコードとネイティブ境界を越えて統合されたデバッグを行うことができるというのがある、とSilverlightのために、それは私が知っている唯一のツールです。それは、SOSをロードし、統合されたデバッグを行うことができます。

コマンド

WinDbgは/ CDB / NTSD / kdは長い間使われてきたので、彼らは非常によく文書化されています。 それは非常にあなたがにDebugging Tools for Windowsを読んだことをお勧めしますmicrosoft.comMSDN ここで私はあなたの感触とクイックリファレンスを与えるために、そのコマンドの簡単な概要を与える。 すべてのコマンドは、実行時のヘルプが付属して(経由して|?ヘルプ|![<cmd>]などの下に議論を助ける)、その概要は、通常、開始するのに十分です。

WinDbgは、コマンドの3つのセットを持っています。

標準コマンド

主に:

  • B *コマンドアドレスまたはアクセスでブレークポイントを設定/クリア/一覧表示/有効化/無効にする
  • Dは、*コマンドメモリ(スタック/ヒープ、グローバル/ローカル変数とパラメータ)を調べるために、E *コマンドは、メモリを変更する、およびメモリを検索するためのS *
  • K *コマンドは、コールスタックを調べるために
  • 実行制御のためのP、T、G *コマンド

以下に? コマンド出力は、Windbg / CDB / NTSD / KDを使用して人々のためのすばらしい概観し、頻繁に参照です。

0:006>?

完全なデバッガのマニュアルのためのオープンDebugger.chmは

B [C | D | E] [<bps>] -クリア/有効/無効にするブレークポイント(複数可)
BL -リストのブレークポイント
BA <access>に<size>は<addr> -セットプロセッサのブレークポイント
BP <address>に-ソフトブレークポイントを設定する
D [タイプ] [<RANGE>] -ダンプメモリ
DT [- N | Y] [[MOD]名!] [[- N | Y]フィールド]
[アドレス] [- lのリスト] [- A [] | C | I | O | R [#] | V] -ダンプを使用して型情報
DV [<name>の] -ダンプのローカル変数
E [タイプ] <address>に[<values>] -メモリの値を入力します
G [H | N] [= <address>の[<address>に...]] -行く
K <count>の-スタックトレース
KP <count>の-ソース引数を使用してスタックトレース
LM [K | L | U | V] -リストモジュール
LN <expr>は-記号最寄りのリスト
Pは[= <addr>] [<value>の] - [ステップオーバー]
Q -終了
R [[<reg> [= <expr>は]]] -ビューまたはセットのレジスタ
S [<opts>] <RANGE> <values> -検索メモリ
SX [{E | D | I | N} [- C"CMD1"] [- C2"CMD2"] [- H] {例外|イベント| *}] -イベントフィルター
T [= <address>の] [<expr>は] -トレースに
U [<RANGE>] -逆アセンブル
バージョン-ショーdebuggeeとデバッガのバージョン
X [<* |モジュール>!]<*|記号> a -ビューのシンボル
<expr>は-表示式
<expr>は-ディスプレイC + +の式
$ <<filename>は-コマンドファイルからの入力を取る

Enterを叩いて...

<expr>は単項OPS:+ -ではないからWO DWO qwo POIハイテクロー
バイナリOPS:+ - * / MOD(%)と(&)XOR(^)または(|)
比較:==(=)<> =!
オペランド:現在の基数での数値、パブリックシンボル、<reg>
<type>は:B(バイト)、W(ワード)、D [S](ダブルワード[記号付き])、
(アスキー)、C(DWORDと文字)、U(ユニコード)、l(リスト)
F(float型)、D(ダブル)、S | S(ASCII / Unicode文字列)
Q(クォドワード)
<PATTERN>:[(NT | <dll-name>)!] <var-name>(<var-name>含めることができると*?)
<RANGE>:<address>の<address>に
:<address>のL <count>の

ユーザモードのオプション:
〜 -一覧のスレッド状態
〜#S -セットのデフォルトのスレッド
| -リストのプロセスの状態
|#S -デフォルトのプロセスを設定する

x86のオプション:
DG <selector> -ダンプセレクタ
<reg>:[E]斧、[E] BX、[E] CX、[E] DX、[E] SI、[E]ディ、[E] BP、[E] SP、[E] IP、[ E] FL、
AL、AH、BL、BH、CL、CH、DL、DH、CS、DS、ES、FS、GS、SS
DR0、DR1、DR2、DR3、DR6、DR7
fpcw、FPSW、fptw、ST0 - ST7、MM0 - MM7
XMM0 - XMM7
<flag>:IOPL、DF、の、TF、SF、ZF、AF、PF、CF、場合
<addr>:#<16ビットプロテクトモードの[セグメント:]アドレス>、
&<V86-mode [seg:]address>

完全なデバッガのマニュアルのためのオープンDebugger.chmは

メタコマンド

主に高度なデバッグのために点が付いたものを開始、。 あなたが知っておくべきいくつかの重要なコマンド:

  • シンボルサーバーを使用するための。symfixとで。sympath
  • ソースサーバーを使用するための。srcfixと。srcpath
  • デバッグ拡張を管理するための。負荷、。loadby、。ロード、。チェーン、。setdll
  • 。サーバ、。リモートデバッグのためのリモート

それはよくシンボルサーバー、ソースサーバーおよびリモートデバッグに慣れるための時間の価値がある:彼らはあなたの人生をよりずっと楽になります。 下のhelpコマンドの出力は次のとおりです。

0:006>。ヘルプ
コマンド:
。放棄する-現在のプロセスを放棄
。allow_exec_cmds [0 | 1] -コントロールの実行コマンド
。allow_image_mapping [0 | 1] -コントロールのオンデマンドイメージファイルのマッピング
。apply_dbp [<options>の] -現在のデータブレークポイントの状態を追加する
コンテキストを登録する
。ASM [<options>の] -設定された分解オプション
。ASM - [<options>の] -明確な分解オプション
。<proc>を添付する-次の実行時 ​​に<proc>に添付
。ブロック{<commands>} -括弧のネストした実行のためのコマンドのセット
。bpsync [0 | 1] -マルチスレッドdebuggeesのための特別なブレークポイントの動作
。ブレイク-外側のループから抜け出します
。ブレイクダンス- KDにブレーク
。キャッシュ[<options>の] -仮想メモリのキャッシュ制御
。呼び出し<FN>(<arg1>、<arg2>、...) -デバッグ対象の関数を実行
。キャッチ{<commands>} -コマンドの失敗をキャッチ
。チェーン-リスト現在の拡張子
。childdbg <0 | 1> -ターンの子プロセスは、オンとオフデバッグまたは
。クライアント-リスト現在アクティブなクライアント
。CloseHandleを[<options>は] [:ハンドル] -指定されたハンドルを閉じる
。続ける-のループを続ける
。copysym [<options>の] <path>に-コピー現在のシンボルファイルのディレクトリへ
。<command line>を作成-新しいプロセスを作成する
。createdir [<options>は] [<path>に] -プロセス生成を制御するオプション
。CXRの<address>は-指定されたアドレスのダンプコンテキストレコード
この後のk個の*は、CXRスタックを提供します
。dbgdbg -現在のデバッガにデバッガをアタッチ
。debug_sw_wow [0 | 1] -ソフトウェアのWOWのエミュレーションとの対話を許可する
。は、デタッチ-現在のプロセス/ダンプからデタッチ
。<file>はdml_file -ファイルからの出力DMLコンテンツ
。dml_flow <start>の<addr> -ショーの基本ブロックのコードフロー
。dml_start [<options>の] -デバッガの活動の航行の概要
。DO {<commands>}(<cond>をは) - <cond>をがゼロになるまで<commands>を実行する
。ドライバー-このコマンドが削除された-使用"LM"またはリロードの- l)。
。ダンプ[<options>の] <filename>は-ホストシステム上でダンプファイルを作成します。
。dvalloc [<options>の] <bytes> -デバッグ対象のVirtualAllocのメモリ
。dvfree [<options>の] <offset> <bytes> -デバッグ対象のVirtualFreeメモリ
。エコー["<string>に"| <string>に] -エコーの文字列
。echotime -出力のデバッガの時間
。echotimestamps [0 | 1] -イベントのトグルタイムスタンプの出力
。ecxr -現在の例外のダンプコンテキストレコード
。effmach [<machine>必要] -変更は、現在のマシンのタイプ
。他に{<commands>} - IF / THEN / ELSE条件付き実行
。ELSIF(<cond>を){<commands>} [<else clauses>] -のif / then / else条件
の実行
。enable_long_status [0 | 1] -デフォルトのベースのダンプLONGタイプ
。enable_unicode [0 | 1] -ダンプUSHORTの配列/ポインタとUnicode文字列
。endsrv <ID> -指定されたエンジンのサーバを無効にする
。endpsrvは-現在のセッションのリモートサーバが終了してしまう。
。enumtag -列挙可能なタグ付きデータ
。event_code -ディスプレイキャッシュされたイベント命令
。イベントログ-最近のイベントの表示ログ
。事象は-表示と使用可能なイベントを選択します。
。eventstr -デバッグ対象が登録したすべてのイベントの文字列を表示
。exepath [<dir>の[;...]] -セットの実行可能ファイルの検索パス
。exepath + [<dir>の[;...]] -追加実行ファイルの検索パス
。exprが-コントロールの式評価
。exptr <address>に-何EXCEPTION_POINTERS用EXRとCXR。。
指定したアドレスのダンプの例外レコード- 。EXR <address>の
。extmatch [<opts>] <PATTERN> -パターンにマッチするすべての拡張子を表示する
。extpath <opts> [<dir>の[;...]] -セットの拡張の検索パス
。extpath + <opts> [<dir>の[;...]] -追加拡張の検索パス
。F + -現在のフレームの呼び出し側にセット現在のスタックフレーム
。F - -現在のフレームの呼び出し先に現在のスタックフレームを設定する
。繊維<address>に-アドレスでの繊維の集合は、コンテキスト
にアドレスが指定されていない場合はリセットされるコンテキスト
。fiximports <PATTERN> -画像のインポートをリンクさせる試み
指定されたコードのアドレスのダンプ関数エントリ- 。fnent <address>の
。fnret <fnaddr> [<retval>] -表示フォーマットされた戻り値
(; <cond>を、<init>を<step>)のための{<commands>} -実行<commands>と
<step> <cond>をされるまで
ゼロに
。force_radix_output [0 | 1] -デフォルトのベースのダンプ整数型
。force_system_init [<options>の] -力保留中のシステムで可能であれば初期化する
。force_tb -強制的に分岐トレースを許可する
。foreachの[OPTS](<alias>に{<tcmds>}){<ecmds>} -のための<ecmds>を実行する
内の各トークン
<tcmds>の出力
。FPO <options>は-コントロールオーバーライドFPOの情報
。フレーム[<FRAME>] -地元の人々のためのセット現在のスタックフレーム
。フォーマット<expr>は-多くのフォーマットで表示される式の結果
。ヘルプ[オプション<options>] -このヘルプを表示する
。holdmem <options>の[範囲] -メモリのデータを保持し、比較する
するif(<cond>を){<commands>} [<else clauses>] -のif / then / else条件
の実行
。ignore_missing_pages [0 | 1] -制御カーネルサマリダンプが欠落して
ページのエラーメッセージ
。imgscan <options>は- PEイメージのスキャンメモリ
。jdinfo <jdi_addr> -のAeDebug情報を解釈する
。kframes <count>の-セットのデフォルトのスタックトレースの深さ
。殺す-現在のプロセスを殺す
。lastevent -最後に発生したイベントを表示
。残す-囲みを終了キャッチ。
。ライン-トグルラインのシンボルロード
。負荷<name>は-拡張子のチェーンには、この拡張モジュールのDLLを追加します。
。loadby <name>の<mod> -モジュールの拡張DLLを追加する
拡張子のチェーンにディレクトリ
。ロケール[<locale>の] -現在のロケールを設定します。
。ログファイル-ディスプレイのログ状態
。logopen [<file>は] -開いている新しいログファイル
。logappend [<file>は] -ログファイルに追加
。logclose -ログファイルを閉じる
。netsyms [0 | 1] -許可/禁止するネットのシンボルパス
。netuse [<options>の] -ネット接続を管理する
。NoShellに-シェルコマンドを無効にする
。noversion -チェックを無効にする拡張機能バージョン
。ofilter <PATTERN> -指定されたパターンに対してフィルタデバッグ出力
。ocommand <prefix>は-コマンドとして与えられた接頭辞を持つ出力を扱う
。<file>はopendump -ダンプファイルを開く
。outmaskの<mask>の-電流出力のマスクのセットビット
。outmask - <mask>の-電流出力のマスク内のビットをクリアします
。pcmdは、[オプション<options>] -コントロールごとに、コマンドプロンプト
。ポップ[<options>の] -ポップアップの状態
。prefer_dml [0 | 1] -制御DMLモードのデフォルト
。printfの"<format>の"、<args…> -書式付き出力
。プロセス[<address>に] -暗黙のプロセスを設定します
にアドレスが指定されていない場合はリセットされ、デフォルト
。prompt_allow [<options>に] -どのような情報コントロールを表示できます
プロンプトで
。プッシュ[<options>の] -プッシュ状態
。quit_lock [<options>の] - InDesignが予期せず終了に対するロックのセッション
。readmem <file>は<RANGE> -ファイルから生のメモリを読み取る
。record_branches [0 | 1] -プロセッサの分岐のコントロールの録音
。リロード[<image.ext> [= <address>の、<size>は]] -リロード記号
。再開-セッションは再起動を要求
。リモート<pipename> -スタートRemote.exeをサーバ
。セキュアな[0 | 1] -ホストの許可しない操作に危険
。send_file <options>は-リモートサーバにファイルを送信する
。サーバ<options>は-始動エンジンサーバ
。サーバ-リスト、アクティブなリモートサーバ
。setdll <name>は-デバッガは最初にこのDLLの拡張子を検索します
。シェル[<command>の] -シェルコマンドを実行
。show_read_failures [<opts>] -制御余分な読み取り障害の出力
。show_sym_failures [<opts>] -制御余分なシンボルの故障出力
。スリープ<milliseconds>を-デバッガでは、指定された期間のためにスリープ状態に
のマシンへのアクセスを許可する場合に役立ちます
NTSD - D上で壊れて
。srcfix [<path extra>] -修正ソースの検索パス
。srcfix + [<path extra>] -追加の固定ソースの検索パス
。srcnoisy [0 | 1] -制御冗長ソースのローディング出力
。srcpath [<dir>の[;...]] -セットのソースの検索パス
。srcpath + [<dir>の[;...]] -追加ソースの検索パス
。step_filter [<opts>] ["<PATTERN> [; <PATTERN> ...]"] -セットのシンボルパターン
ステップ実行時 ​​にスキップする
。symfix [<localsym>] -修正シンボルの検索パス
。symfix + [<localsym>] -追加の固定シンボルの検索パス
。symopt <flags> -セットのシンボルのオプション
。symopt + <flags> -セットのシンボルのオプション
。symopt - <flags> -明確なシンボルのオプション
で。sympath [<dir>の[;...]] -セットのシンボルの検索パス
で。sympath + [<dir>の[;...]] -追加シンボルの検索パス
。スレッド[<address>に] -アドレスでのスレッドのセットは、コンテキスト
リセットされ、デフォルトのコンテキストにアドレスが指定されていない場合
。時間-セッションの時間の情報が表示されます。
。ttimeは-スレッドの時間の情報が表示されます。
。tlistの-リスト実行中のプロセス
。typeopt <flags> -セット/クリアタイプのオプション
。<name>をアンロード-拡張DLLのリストから、この拡張モジュールのDLLを削除する
。unloadall -拡張DLLのリストからすべての拡張DLLを削除する
。ウェイク- 。sleep'ingデバッガをウェイクアップさせる
。ながら(<cond>を){<commands>} - <cond>を非ゼロのときに<commands>を実行する
。writemem <file>は<RANGE> -ファイルに生のメモリを書き込む

取得するにはデバッガのディレクトリに"。HH <command>に"またはオープンDebugger.chmはを使用してください
コマンドに関する詳細なドキュメント。

拡張コマンド

それらは、から始める!、通常、特定の領域に対して、マネージデバッグのためのSOSの拡張コマンドと同様に。 あなたは!<EXT>を使用することができます。!exts.helpように、拡張子のコマンドを一覧表示するのに役立ちます。 高度なシステムのデバッグのために、メモリリーク、デッドロックなどを検出するように、あなたはそれらの拡張コマンドに非常に精通する必要があります。

SOS

概要

SOSは、ストライクの息子(私に理由を聞かないでください)​​、マネージデバッグ用のデバッグ拡張の頭字語です。 私はそれがCLRデバッグのためのCLRチームによって発明されたので、長い時間を回避されていると信じて、そしてウェブ上で良い情報がたくさんあり​​ます。 いくつかの推奨測定値:

CLRの各バージョンは独自のSOSを(。NET Framework 3.5がまだCLR 2.0を使用し、Silverlightが独自のCLRを持っている)があります。

Windowsの\ clr10用\プログラムファイル\デバッグツール:Cのディレクトリ
2007年9月19日7時01 PM 948784 sos.dll
1ファイル(秒)948784バイト

Cのディレクトリ:\ Program Files \ MicrosoftのSilverlightを\ 2.0.31005.0
2008年10月5日午前2時16分は495424 sos.dll午前
1ファイル(秒)495424バイト

Cのディレクトリ:\ WINDOWS \ Microsoft.NET \ Frameworkの\ v1.1.4322が
2004年7月15日0:35 319488 SOS.dll午前
1ファイル(秒)319488バイト

Cのディレクトリ:\ WINDOWS \ Microsoft.NET \ Frameworkの\ v2.0.50727の
2008年7月27日10:03 392184 SOS.dll午前
1ファイル(秒)392184バイト


コマンド

SOS実行時のヘルプには、ほとんど少数の試行錯誤以外の他のドキュメントと、いくつかのフラストレーションを必要としないほど素晴らしいです。 :-)

0:016>!ヘルプ
---------------------------
SOSは、管理のデバッグを支援するために設計されたデバッガ拡張DLLです。
プログラム。 関数は、その後およその順にカテゴリ別に掲載されています
重要性。 人気の高い機能のショートカット名は、括弧内に記載されています。
タイプは、その関数に関する詳細な情報は"!<FunctionName>がを助ける"。

オブジェクトの検査の検査コードとスタック
---------- ----------
DumpObj(そう)のスレッド
DumpArray(DA)CLRStack
DumpStackObjects(DSO)IP2MD
SOSのU
DumpVC DumpStack
gcrootののEEStack
ObjSizeではGCInfo
FinalizeQueue EHInfo
れるPrintException(PE)COMState
TraverseHeap BPMD

CLRのデータ構造の診断ユーティリティを検証する
---------- ----------
DumpDomain VerifyHeap
EEHeap VerifyObj
Name2EEののFindRoots
するsyncblk HeapStat
DumpMT GCWhere
DumpClass ListNearObj(LNO)
DumpMDのGCHandles
Token2EE GCHandleLeaks
EEVersion FinalizeQueue(FQ)
DumpModuleのFindAppDomain
ThreadPoolのSaveModule
DumpAssembly PROCINFO
DumpSigElem StopOnException(SOE)
調べるのにDumpRuntimeTypes
DumpSig VMMap
RCWCleanupListのvmstat
DumpIL MinidumpMode
AnalyzeOOM(AO)

その他のGCの歴史を調べる
---------- ----------
HistInit FAQ
HistStats
HistRoot
HistObj
HistObjFind
HistClear

サンプルのデバッグのデモ

私は(以前の記事で同じ最も簡単なSilverlightアプリケーションを使用します。 Visual StudioでのSilverlightのデバッグ SOSでデバッグをWinDbgを実証するために):

image_thumb

ここに私の注釈とデバッグログは、(/ /で始まる)です。

/ /シンボルサーバーを使用するシンボルパスを設定する
0:013>で。sympath
シンボルの検索パスは次のとおりです。<empty>
0:013> symfix C:\ユーザー\ ningz \のAppData \ローカル\ Tempに\記号
0:013>で。sympath
シンボルの検索パスは次のとおりです。SRV * C:\ユーザー\ ningz \のAppData \ローカル\ Tempに\記号\ * \記号\記号

/ /デバッグしているアプリケーションのPDBのパスを追加します。
0:013> sympath +。"C:\ユーザー\ ningz \ドキュメント\ Visual Studio 2008 \プロジェクト\ SilverlightApplication1 \ SilverlightApplication1の\ Bin \ Debug"に
シンボルの検索パスは次のとおりです。SRV * C:\ユーザー\ ningz \のAppData \ローカル\ Tempに\記号*
http://msdl.microsoft.com/download/symbols;
C:\ユーザー\ ningz \ドキュメント\ Visual Studio 2008 \プロジェクト\ SilverlightApplication1 \ SilverlightApplication1 \ビン\デバッグ

/ /すべてのシンボルを再読み込み
0:013>。リロード
現在のモジュールのリロード

/ /ソースサーバーを使用するようにソースパスを設定する
0:013>。srcpath
ソースの検索パスは次のとおりです。<empty>
0:013>。srcfix
ソースの検索パスは次のとおりです。SRV *
0:013> srcpath +。"C:\ユーザー\ ningz \ドキュメント\ Visual Studio 2008 \プロジェクト\ SilverlightApplication1 \ SilverlightApplication1"
ソースの検索パスは次のとおりです。SRV * C:\ユーザー\ ningz \ドキュメント\ Visual Studio 2008 \プロジェクト\ SilverlightApplication1 \ SilverlightApplication1

/ /負荷のSOS。 注意してください:
/ / 1。 それはmscorwksは、Silverlightのcoreclrに置き換えているようだ
/ / 2。 。代わりにloadby、次を使用することもできます"C:\プログラムファイル\のMicrosoft Silverlight \ 2.0.31005.0 \ sos.dll"をロードする。
0:013>。loadby SOS coreclr
ロードされたC:\ Program Files \ MicrosoftのSilverlightは\ 2.0.31005.0 \ SOS拡張DLL

/ /ボタンクリックイベントハンドラのブレークポイントを設定する
0:013>!bpmd SilverlightApplication1 SilverlightApplication1.Page.Button_Click
1メソッドを発見した...
のMethodDesc = 03983a30
保留中のブレークポイントを追加...
0:013> BL
0 E 0428215b 0001(0001)0 :****
0:013> G
modloadは:70800000 7080c000 C:Windowssystem32dwmapi.dll

/ /ボタンをクリックし、WinDbgに侵入
ブレークポイント0ヒット
*** WARNING:SilverlightApplication1.dllためのチェックサムを確認できません
!SilverlightApplication1 Button_Click:
04850398 55プッシュEBP
統合されたマネージデバッグは、ローカル変数の列挙をサポートしていません。
参照してくださいhttp://dbg/managed.htm詳細を。
フレーム処理は、HRESULT 0x80004005が、障害が発生した管理対象

/ /比較!スレッドと〜*出力
0:005>!スレッド/ /リストマネージスレッドのみ
スレッドカウント:3
UnstartedThread:0
BackgroundThread:3
PendingThread:0
DeadThread:0
ホストされているランタイム:はい
プリエンプティブなGC割り当てとロック
ID OSID ThreadOBJ州立GCコンテキストのドメインは、APTの例外をカウント
5 1 1b08 043576e0 220バリア04f9f214:04f9ffe8 06f529d8 0 STA
9 2 928 043689c8 B220有効00000000:00000000 0433c738 0 MTA(ファイナライザ)
10 3 1e8c 06f509d0 1220 00000000:00000000 0433c738 0 Uknを有効
0:005>〜リスト* / /すべてのスレッド
0 ID:162c.1a28サスペンド:1 TEB:7ffde000凍らない
スタート!IexploreのwWinMainCRTStartup(00a52d79)
優先度:0優先度クラス:32アフィニティ:3
2 ID:162c.1020サスペンド:1 TEB:7ffdc000凍らない
スタート!OLE32 CRpcThreadCache::RpcWorkerThreadEntry(76dfe0cc)
優先度:0優先度クラス:32アフィニティ:3
3 ID:162c.1e00サスペンド:1 TEB:7ffda000凍らない
スタート!NTDLL TppWaiterpThread(778ab61b)
優先度:0優先度クラス:32アフィニティ:3
4 ID:162c.1f00サスペンド:1 TEB:7ffd9000凍らない
スタート!MSVCRT _endthreadex 0 x6f(76162da8)
優先度:0優先度クラス:32アフィニティ:3
5 ID:162c.1b08サスペンド:1 TEB:7ffd8000凍らない
スタート!IEFRAME CTabWindow::_TabWindowThreadProc(6c163fdb)
優先度:0優先度クラス:32アフィニティ:3
7 ID:162c.170サスペンド:1 TEB:7ffd6000凍らない
スタート!npctrl CXcpDispatcher::DispatcherTimerCallback(6a6d16f4)
優先度:0優先度クラス:32アフィニティ:3
8 ID:162c.1cd0サスペンド:1 TEB:7ffd5000凍らない
スタート!coreclr DebuggerRCThread::ThreadProcStatic(640eb5cd)
優先度:0優先度クラス:32アフィニティ:3
9 ID:162c.928サスペンド:1 TEB:7ffd4000凍らない
スタート!coreclrスレッド::intermediateThreadProc(63fb8e4f)
優先度:0優先度クラス:32アフィニティ:3
10 ID:162c.1e8cサスペンド:1 TEB:7ffd3000凍らない
スタート!coreclrスレッド::intermediateThreadProc(63fb8e4f)
優先度:0優先度クラス:32アフィニティ:3
11 ID:162c.1facサスペンド:1 TEB:7ffaf000凍らない
スタート!agcore CMulticoreTaskScheduler::WorkerThread(660547de)
優先度:0優先度クラス:32アフィニティ:3
12 ID:162c.1b78サスペンド:1 TEB:7ffae000凍らない
スタート!agcore CMulticoreTaskScheduler::WorkerThread(660547de)
優先度:0優先度クラス:32アフィニティ:3
13イド:162c.1d18サスペンド:1 TEB:7ffdb000凍らない
スタート!NTDLL RtlUserThreadStart(778c9a78)
優先度:0優先度クラス:32アフィニティ:3
フレーム処理は、HRESULT 0x80004005が、障害が発生した管理対象
統合されたマネージデバッグは、ローカル変数の列挙をサポートしていません。
参照してくださいhttp://dbg/managed.htm詳細を。

/ /比較する!clrstack&kの出力
0:005>!clrstack - P / /リストには、スタックフレームを管理するだけ
OSスレッドID:0x1b08(5)
ESP EIP
0450f850 04800398 SilverlightApplication1.Page.Button_Click(System.Objectの、System.Windows.RoutedEventArgs)
パラメータ:
この(<CLR reg>)= 0x04f59c78
送信者(<CLR reg>)= 0x04f5b948
E(0x0450f854)= 0x04f9f1f0

0450f858 048cde0d System.Windows.Controls.Primitives.ButtonBase.OnClick()
パラメータ:
この(0x0450f864)= 0x04f5b948

0450f870 048cdd10 System.Windows.Controls.Button.OnClick()
パラメータ:
この= <no DATA>

0450f880 048cdc3d
パラメータ:
この(0x0450f884)= 0x04f5b948
E(0x0450f880)= 0x04f9f188

0450f890 048cdba1 System.Windows.Controls.Control.OnMouseLeftButtonUp(System.Windows.Controls.Control、いるSystem.EventArgs)
パラメータ:
CTRL = <no DATA>
E = <no DATA>

0450f8a0 0483a0e7 MS.Internal.JoltHelper.FireEvent(IntPtrを、IntPtrを、Int32型は、System.String)
パラメータ:
unmanagedObj(0x0450f8f8)= 0x04355c48
unmanagedObjArgs(0x0450f8f4)= 0x0707be00
argsTypeIndex(0x0450f928)= 0x000000a9
eventNameの(0x0450f924)= 0x04f9f16c

0450fa74 63ef17b0 [GCFrame:0450fa74]
[ContextTransitionFrame:0450fb30] 0450fb30 63ef17b0
0450fc28 63ef17b0 [UMThkCallFrame:0450fc28]
0:005> KP / /リストのすべてのスタックフレーム
のChildEBp RetAddr
0450f868はSilverlightApplication1!Button_Click(<HRESULT 0x80004001>を)048cde0d
0450f868 048cdd10 System_Windows!System.Windows.Controls.Primitives.ButtonBase.OnClick(<HRESULT 0x80004001>)+0 x5d
0450f878 048cdc3d System_Windows!System.Windows.Controls.Button.OnClick(<HRESULT 0x80004001>)+0 x48の
0450f888 048cdba1 System_Windows!System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(<HRESULT 0x80004001>)+0 X85
0450f898 0483a0e7 System_Windows!System.Windows.Controls.Control.OnMouseLeftButtonUp(<HRESULT 0x80004001>)+0 X41
0450f91c 63ef17b0 System_Windows!MS.Internal.JoltHelper.FireEvent(<HRESULT 0x80004001>)+0 x1b7
0450f934 63ef5f98 coreclr!CallDescrWorker 0 X33
0450f9b0 63f032bc coreclr!CallDescrWorkerWithHandler 0 x8e
0450f9d0 63f0345c coreclr!ForwardCallToManagedMethod 0 X55
0450faf4 63fc4abf coreclr!DoUMThunkCallWorker 0 x199
0450fbe0 04c513d2 coreclr!DoUMThunkCall 0 x1b4
警告:フレームのIPではない任意の既知のモジュールです。 以下のフレームは間違っている可能性があります。
0450fc10 6607e0db 0x4c513d2
!0450fc70 6a6dc1fc agcore CCoreServices::CLR_FireEvent 0 x183
フレーム処理は、HRESULT 0x80004005が、障害が発生した管理対象
0450fc84 6a6dc187 npctrl CommonBrowserHost:!:CLR_FireEvent 0 X2A
!0450fcc8 6a6dc048 npctrl CControlBase::ScriptCallback 0 x366
0450fd08 6a6dc013 npctrl CXcpDispatcher:!:OnScriptCallback 0 XEE
!0450fd14 6a6dbfef npctrl CXcpDispatcher::OnWindowMessage 0 X3A
0450fd2c 7731f8d2 npctrl CXcpDispatcher::WindowProcに0 x7f
0450fd58 7731f794 USER32!InternalCallWinProc 0 X23
0450fdd0 77320008 USER32!UserCallWinProcCheckWow 0 x14b

/ /ヒープを調べ、、強い型指定されたオブジェクトのヒープの利便性の点に注意してください。
/ /代わりに、ネイティブヒープのように、型未指定のバイトの
0:005>!SOSの型SilverlightApplication1
アドレスのMTのサイズ
04f4f31c 046336b0 36
04f59c78 04633a6c 68
合計2個のオブジェクト
統計:
MTカウントTotalSizeのクラス名
046336b0 1 36 SilverlightApplication1.App
04633a6c 1 68 SilverlightApplication1.Page
合計2個のオブジェクト
0:005>!行う04f59c78
名前:SilverlightApplication1.Page
MethodTableの:04633a6c
EEClassに:0463196c
サイズ:68(0x44の)バイト
ファイル:SilverlightApplication1、バージョン= 1.0.0.0、文化=中立的なPublicKeyToken = nullを
フィールド:
MTのフィールドオフセット型VTのAttr値の名前
047d97a0 40000dc 4 ... al.NativeResource 0インスタンス04f5a5c0 m_nativePtr
04853ab8 40000df 8 ... System.Windows]] 0インスタンス0000万_valueTable
047d9874 40000e0 C ... reTypeEventHelper 0インスタンス04f5a600 _coreTypeEventHelper
04856388 40000e3 10 ... bject、mscorlibの]] 0インスタンス04f79a58 _treeChildren
047ae03c 40000e4 14 ... rnal.IManagedPeer 0インスタンス0000万_treeParent
03d50a90 40000dd 2B0 System.IntPtr 1共有静的StaticNativePointer
>>ドメイン:値0433c738:NotInit 06f529d8:00000000 <<
03d50f28 40000de 2B4可能System.Boolean 1共有静的_isCoreCreate
>>ドメイン:値0433c738:NotInit 06f529d8:0 <<
047ae384 40000e1 8 ....のDependencyObject 0共有静的PropertyReferencesHolder
>>ドメイン:値0433c738:NotInit 06f529d8:04f489b8 <<
04661618 40000e2 C ... flection.Assembly 0 _executingAssembly静的共有
>>ドメイン:値0433c738:NotInit 06f529d8:00000000 <<
047d0b90 40000f1 18 ... rs.AutomationPeer 0インスタンス0000万m_pAP
047d7404 40000e8 10 ... ependencyProperty 0共有静的OpacityProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a4a8 <<
047d7404 40000e9 14 ... ependencyProperty 0共有静的ClipProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a4d0 <<
047d7404 40000ea 18 ... ependencyProperty 0共有静的RenderTransformProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a4f8 <<
047d7404 40000eb 1C ... ependencyProperty 0共有静的OpacityMaskProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a50c <<
047d7404 40000ec 20 ... ependencyProperty 0共有静的RenderTransformOriginProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a534 <<
047d7404 40000ed 24 ... ependencyProperty 0共有静的IsHitTestVisibleProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a548 <<
047d7404 40000ee 28 ... ependencyProperty 0共有静的VisibilityProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a570 <<
047d7404 40000ef 2C ... ependencyProperty 0共有静的RenderSizeProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a598 <<
047d7404 40000f0 30 ... ependencyProperty 0共有静的UseLayoutRoundingProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a5ac <<
00000000 4000108 1C 0インスタンス0000万のBindingValidationError
04856ae4 400010a 20 ... DPChanged angedEventHandler 0インスタンス0000万
048bc8a4 400010b 24 ... DataContextChanged angedEventHandler 0インスタンス0000万
03d50f28 400010c 2C可能System.Boolean 1インスタンス0 _isDataContextBound
0481f43c 400010d 28 ... _sizeChanged angedEventHandler 0インスタンス0000万
047d7404 40000f2 34 ... ependencyProperty 0共有静的TriggersProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a144 <<
047d7404 40000f3 38 ... ependencyProperty 0共有静的ResourcesProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a158 <<
047d7404 40000f4 3C ... ependencyProperty 0共有静的LanguageProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a180 <<
047d7404 40000f5 40 ... ependencyProperty 0共有静的ActualWidthProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a194 <<
047d7404 40000f6 44 ... ependencyProperty 0共有静的ActualHeightProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a1a8 <<
047d7404 40000f7 48 ... ependencyProperty 0共有静的WidthProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a1bc <<
047d7404 40000f8 4C ... ependencyProperty 0は静的HeightPropertyを共有
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a1d0 <<
047d7404 40000f9 50〜ependencyProperty 0共有静的MinWidthProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a1e4 <<
047d7404 40000fa 54 ... ependencyProperty 0共有静的MaxWidthProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a1f8 <<
047d7404 40000fb 58 ... ependencyProperty 0共有静的MinHeightProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a20c <<
047d7404 40000fc 5C ... ependencyProperty 0共有静的MaxHeightProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a220 <<
047d7404 40000fd 60 ... ependencyProperty 0共有静的HorizontalAlignmentProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a234 <<
047d7404 40000fe 64 ... ependencyProperty 0共有静的VerticalAlignmentProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a248 <<
047d7404 40000ff 68 ... ependencyProperty 0共有静的MarginProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a25c <<
047d7404 4000100 6C ... ependencyProperty 0共有静的StyleProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a284 <<
047d7404 4000101 70 ... ependencyProperty 0共有静的ParentProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a2ac <<
047d7404 4000102 74 ... ependencyProperty 0共有静的NameProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a2c0 <<
047d7404 4000103 78 ... ependencyProperty 0共有静的TagProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a2d4 <<
047d7404 4000104 7cが... ependencyProperty 0共有静的TagInternalProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a2fc <<
04851464 4000105 80 ... ndows.RoutedEvent 0共有静的LoadedEvent
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a420 <<
047d7404 4000106 84 ... ependencyProperty 0共有静的CursorProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a440 <<
047d7404 4000107 88 ... ependencyProperty 0共有静的InstanceDelegateStoreProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a468 <<
047d7404 4000109 8C ... ependencyProperty 0共有静的DataContextProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a494 <<
047a1e2c 400010e 90 ... rence、mscorlibの]] 0共有静的_staticDelegateList
>>ドメイン:値0433c738:NotInit 06f529d8:00000000 <<
00000000 4000264 30 ... angedEventHandler 0インスタンス00000000 IsEnabledChanged
047d7404 4000252 430 ... ependencyProperty 0共有静的IsTabStopProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59ce4 <<
047d7404 4000253 434 ... ependencyProperty 0共有静的TabIndexProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59cf8 <<
047d7404 4000254 438 ... ependencyProperty 0共有静的TemplateProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59d20 <<
047d7404 4000255 43C ... ependencyProperty 0共有静的TabNavigationProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59d48 <<
047d7404 4000256 440 ... ependencyProperty 0共有静的PaddingProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59d70 <<
047d7404 4000257 444 ... ependencyProperty 0共有静的HorizontalContentAlignmentProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59d98 <<
047d7404 4000258 448 ... ependencyProperty 0共有静的VerticalContentAlignmentProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59dc0 <<
047d7404 4000259 44C ... ependencyProperty 0共有静的BackgroundProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59de8 <<
047d7404 400025a 450 ... ependencyProperty 0共有静的BorderBrushProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59dfc <<
047d7404 400025b 454 ... ependencyProperty 0共有静的BorderThicknessProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59e10 <<
047d7404 400025c 458 ... ependencyProperty 0共有静的FontSizeProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59e24 <<
047d7404 400025d 45C ... ependencyProperty 0共有静的FontFamilyProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59e4c <<
047d7404 400025e 460 ... ependencyProperty 0共有静的ForegroundProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59e60 <<
047d7404 400025f 464 ... ependencyProperty 0共有静的FontWeightProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59e88 <<
047d7404 4000260 468 ... ependencyProperty 0共有静的FontStyleProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59eb0 <<
047d7404 4000261 46C ... ependencyProperty 0共有静的FontStretchProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59ed8 <<
047d7404 4000262 470 ... ependencyProperty 0共有静的DefaultStyleKeyProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59eec <<
047d7404 4000263 474 ... ependencyProperty 0共有静的IsEnabledProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59f00 <<
04857f14 4000265 478 ... System.Windows]] 0共有静的_resourceDictionaryCache
>>ドメイン:値0433c738:NotInit 06f529d8:04f5cae4 <<
03cf5668 4000266 47CはSystem.Object [] 0共有静的_controlDelgates
>>ドメイン:値0433c738:NotInit 06f529d8:04f59f14 <<
047d7404 4000501 77C ... ependencyProperty 0共有静的ContentProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59cd0 <<
04852580 4000002 34 ... ows.Controls.Grid 0インスタンス04f79770のLayoutRoot
04852a10 4000003 38 ... s.Controls.Button 0インスタンス04f5b948ボタン
03d50f28 4000004 3C可能System.Boolean 1件のインスタンスが1 _contentLoaded

上記の/ / 2行は、ページオブジェクトのボタンのオブジェクトです。
我々は、後でそれを参照するので、/ /そのアドレス04f5b948を 、覚えている
/ /我々は、SOSのコマンドを介してボタンオブジェクトに同じアドレスを取得することができます。
0:005>!SOSの- mtを04852a10
アドレスのMTのサイズ
04f5b948 04852a10 92
合計1のオブジェクト
統計:
MTカウントTotalSizeのクラス名
04852a10 1 92 System.Windows.Controls.Button
合計1のオブジェクト
はGCがまだないので0:005>!gcwhere 04f5b948 / /ボタンは、gen0になります
アドレス世代のヒープセグメントが割り当てられているサイズを開始
04f5b948 0 0 04f40000 04f41000 04f9fff4に0x5c(92)
0:005>!gcrootの04f5b948 / /ボタンオブジェクトへの参照を保持している誰が参照してください
注:スタック上にあるルーツが偽陽性になることがあります。 実行"!gcrootを助ける"ために
より多くの情報。
/ /レジストリの参照
ECX:ルート:04f59c78(SilverlightApplication1.Page) - >
04f5b948(System.Windows.Controls.Button) - >
EDX:ルート:04f5b948(System.Windows.Controls.Button) - >
/ /スタックの参照
スレッド5 OSTHread 1b08をスキャン
ESP:450f860:ルート:04f5ca18(System.Windows.RoutedEventHandler) - >
04f59c78(SilverlightApplication1.Page) - >
04f5b948(System.Windows.Controls.Button) - >
ESP:450f864:ルート:04f5b948(System.Windows.Controls.Button) - >
ESP:450f874:ルート:04f5b948(System.Windows.Controls.Button) - >
ESP:450f884:ルート:04f5b948(System.Windows.Controls.Button) - >
ESP:450f894:ルート:04f5b948(System.Windows.Controls.Button) - >
ESP:450f8d4:ルート:04f5b948(System.Windows.Controls.Button) - >
ESP:450f8e4:ルート:04f5b948(System.Windows.Controls.Button) - >
スキャンスレッド9 OSTHread 928
スレッド10 OSTHread 1e8cをスキャン
/ /ドメインを参照する
DOMAIN(06F529D8):ハンドル(固定):46412f8:ルート:05f44260(System.Objectの[])->
04f45234(System.Collections.Generic.List`1 [[はSystem.Object、mscorlibの]])->
04f59980(System.Objectの[])->
04f59c78(SilverlightApplication1.Page) - >
04f5b948(System.Windows.Controls.Button) - >
フレーム処理は、HRESULT 0x80004005が、障害が発生した管理対象
統合されたマネージデバッグは、ローカル変数の列挙をサポートしていません。
参照してくださいhttp://dbg/managed.htm詳細を。

/ /ボタンオブジェクト自体を調べる
0:005>!行う04f5b948
名前:System.Windows.Controls.Button
MethodTableの:04852a10
EEClassに:0482e5f0
サイズ:92(0x5cが)バイト
ファイル:C:\ Program Files \ MicrosoftのSilverlightは\ 2.0.31005.0 \ System.Windows.dll
フィールド:
MTのフィールドオフセット型VTのAttr値の名前
047d97a0 40000dc 4 ... al.NativeResource 0インスタンス04f5bd58 m_nativePtr
04853ab8 40000df 8 ... System.Windows]] 0インスタンス04f5c0bc _valueTable
047d9874 40000e0 C ... reTypeEventHelper 0インスタンス04f5bd88 _coreTypeEventHelper
04856388 40000e3 10 ... bject、mscorlibの]] 0インスタンス04f5bee8 _treeChildren
047ae03c 40000e4 14 ... rnal.IManagedPeer 0インスタンス04f79770 _treeParent
03d50a90 40000dd 2B0 System.IntPtr 1共有静的StaticNativePointer
>>ドメイン:値0433c738:NotInit 06f529d8:00000000 <<
03d50f28 40000de 2B4可能System.Boolean 1共有静的_isCoreCreate
>>ドメイン:値0433c738:NotInit 06f529d8:0 <<
047ae384 40000e1 8 ....のDependencyObject 0共有静的PropertyReferencesHolder
>>ドメイン:値0433c738:NotInit 06f529d8:04f489b8 <<
04661618 40000e2 C ... flection.Assembly 0 _executingAssembly静的共有
>>ドメイン:値0433c738:NotInit 06f529d8:00000000 <<
047d0b90 40000f1 18 ... rs.AutomationPeer 0インスタンス0000万m_pAP
047d7404 40000e8 10 ... ependencyProperty 0共有静的OpacityProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a4a8 <<
047d7404 40000e9 14 ... ependencyProperty 0共有静的ClipProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a4d0 <<
047d7404 40000ea 18 ... ependencyProperty 0共有静的RenderTransformProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a4f8 <<
047d7404 40000eb 1C ... ependencyProperty 0共有静的OpacityMaskProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a50c <<
047d7404 40000ec 20 ... ependencyProperty 0共有静的RenderTransformOriginProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a534 <<
047d7404 40000ed 24 ... ependencyProperty 0共有静的IsHitTestVisibleProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a548 <<
047d7404 40000ee 28 ... ependencyProperty 0共有静的VisibilityProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a570 <<
047d7404 40000ef 2C ... ependencyProperty 0共有静的RenderSizeProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a598 <<
047d7404 40000f0 30 ... ependencyProperty 0共有静的UseLayoutRoundingProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a5ac <<
00000000 4000108 1C 0インスタンス0000万のBindingValidationError
04856ae4 400010a 20 ... DPChanged angedEventHandler 0インスタンス0000万
048bc8a4 400010b 24 ... DataContextChanged angedEventHandler 0インスタンス0000万
03d50f28 400010c 2C可能System.Boolean 1インスタンス0 _isDataContextBound
0481f43c 400010d 28 ... _sizeChanged angedEventHandler 0インスタンス0000万
047d7404 40000f2 34 ... ependencyProperty 0共有静的TriggersProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a144 <<
047d7404 40000f3 38 ... ependencyProperty 0共有静的ResourcesProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a158 <<
047d7404 40000f4 3C ... ependencyProperty 0共有静的LanguageProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a180 <<
047d7404 40000f5 40 ... ependencyProperty 0共有静的ActualWidthProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a194 <<
047d7404 40000f6 44 ... ependencyProperty 0共有静的ActualHeightProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a1a8 <<
047d7404 40000f7 48 ... ependencyProperty 0共有静的WidthProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a1bc <<
047d7404 40000f8 4C ... ependencyProperty 0は静的HeightPropertyを共有
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a1d0 <<
047d7404 40000f9 50〜ependencyProperty 0共有静的MinWidthProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a1e4 <<
047d7404 40000fa 54 ... ependencyProperty 0共有静的MaxWidthProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a1f8 <<
047d7404 40000fb 58 ... ependencyProperty 0共有静的MinHeightProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a20c <<
047d7404 40000fc 5C ... ependencyProperty 0共有静的MaxHeightProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a220 <<
047d7404 40000fd 60 ... ependencyProperty 0共有静的HorizontalAlignmentProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a234 <<
047d7404 40000fe 64 ... ependencyProperty 0共有静的VerticalAlignmentProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a248 <<
047d7404 40000ff 68 ... ependencyProperty 0共有静的MarginProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a25c <<
047d7404 4000100 6C ... ependencyProperty 0共有静的StyleProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a284 <<
047d7404 4000101 70 ... ependencyProperty 0共有静的ParentProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a2ac <<
047d7404 4000102 74 ... ependencyProperty 0共有静的NameProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a2c0 <<
047d7404 4000103 78 ... ependencyProperty 0共有静的TagProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a2d4 <<
047d7404 4000104 7cが... ependencyProperty 0共有静的TagInternalProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a2fc <<
04851464 4000105 80 ... ndows.RoutedEvent 0共有静的LoadedEvent
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a420 <<
047d7404 4000106 84 ... ependencyProperty 0共有静的CursorProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a440 <<
047d7404 4000107 88 ... ependencyProperty 0共有静的InstanceDelegateStoreProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a468 <<
047d7404 4000109 8C ... ependencyProperty 0共有静的DataContextProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5a494 <<
047a1e2c 400010e 90 ... rence、mscorlibの]] 0共有静的_staticDelegateList
>>ドメイン:値0433c738:NotInit 06f529d8:00000000 <<
00000000 4000264 30 ... angedEventHandler 0インスタンス00000000 IsEnabledChanged
047d7404 4000252 430 ... ependencyProperty 0共有静的IsTabStopProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59ce4 <<
047d7404 4000253 434 ... ependencyProperty 0共有静的TabIndexProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59cf8 <<
047d7404 4000254 438 ... ependencyProperty 0共有静的TemplateProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59d20 <<
047d7404 4000255 43C ... ependencyProperty 0共有静的TabNavigationProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59d48 <<
047d7404 4000256 440 ... ependencyProperty 0共有静的PaddingProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59d70 <<
047d7404 4000257 444 ... ependencyProperty 0共有静的HorizontalContentAlignmentProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59d98 <<
047d7404 4000258 448 ... ependencyProperty 0共有静的VerticalContentAlignmentProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59dc0 <<
047d7404 4000259 44C ... ependencyProperty 0共有静的BackgroundProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59de8 <<
047d7404 400025a 450 ... ependencyProperty 0共有静的BorderBrushProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59dfc <<
047d7404 400025b 454 ... ependencyProperty 0共有静的BorderThicknessProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59e10 <<
047d7404 400025c 458 ... ependencyProperty 0共有静的FontSizeProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59e24 <<
047d7404 400025d 45C ... ependencyProperty 0共有静的FontFamilyProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59e4c <<
047d7404 400025e 460 ... ependencyProperty 0共有静的ForegroundProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59e60 <<
047d7404 400025f 464 ... ependencyProperty 0共有静的FontWeightProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59e88 <<
047d7404 4000260 468 ... ependencyProperty 0共有静的FontStyleProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59eb0 <<
047d7404 4000261 46C ... ependencyProperty 0共有静的FontStretchProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59ed8 <<
047d7404 4000262 470 ... ependencyProperty 0共有静的DefaultStyleKeyProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59eec <<
047d7404 4000263 474 ... ependencyProperty 0共有静的IsEnabledProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f59f00 <<
04857f14 4000265 478 ... System.Windows]] 0共有静的_resourceDictionaryCache
>>ドメイン:値0433c738:NotInit 06f529d8:04f5cae4 <<
03cf5668 4000266 47CはSystem.Object [] 0共有静的_controlDelgates
>>ドメイン:値0433c738:NotInit 06f529d8:04f59f14 <<
03cf44e8 40002b4 34 System.Objectの0インスタンス0000万_treeContent
047d7404 40002b3 530 ... ependencyProperty 0共有静的ContentTemplateProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5bd30 <<
047d7404 40002b5 534 ... ependencyProperty 0共有静的ContentProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5bd44 <<
03d50f28 40005aa 40可能System.Boolean 1件のインスタンスが1 _isLoaded
_isMouseCaptured 03d50f28 40005ab 41可能System.Boolean 1インスタンス1
03d50f28 40005ac 42可能System.Boolean 1インスタンス0 _isSpaceKeyDown
03d50f28 40005ad 43可能System.Boolean 1インスタンス0 _isMouseLeftButtonDown
04852208 40005ae 48 System.Windows.Point 1つのインスタンス04f5b990 _mousePosition
048b5f98 40005af 38 ... mation.Storyboard 0インスタンス0000万_currentState
03d50f28 40005b0 44可能System.Boolean 1インスタンス0 _suspendStateChanges
0481fae0 40005b1 3C ... outedEventHandler 0インスタンス04f5ca18をクリック
047d7404 40005a6 7E0 ... ependencyProperty 0共有静的ClickModeProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5ba7c <<
047d7404 40005a7 7E4 ... ependencyProperty 0共有静的IsFocusedProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5bb38 <<
047d7404 40005a8 7e8 ... ependencyProperty 0共有静的IsMouseOverProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5bbd8 <<
047d7404 40005a9 7ec ... ependencyProperty 0共有静的IsPressedProperty
>>ドメイン:値0433c738:NotInit 06f529d8:04f5bc40 <<

/ /ダンプButton.Clickのフィールド(上記の9行)
0:005>!行う04f5ca18
名前:System.Windows.RoutedEventHandler
MethodTableの:0481fae0
EEClassに:0482c99c
サイズ:32(0x20)にバイト
ファイル:C:\ Program Files \ MicrosoftのSilverlightは\ 2.0.31005.0 \ System.Windows.dll
フィールド:
MTのフィールドオフセット型VTのAttr値の名前
03cf44e8 40001e0 4 System.Objectの0インスタンス04f59c78 _target
04663c58 40001e1 8 ... ection.MethodBase 0インスタンス0000万_MethodBase
03d50a90 40001e2 C System.IntPtr 1つのインスタンス463c08c _methodPtr
03d50a90 40001e3 10 System.IntPtr 1インスタンス0 _methodPtrAux
03cf44e8 40001e4 14 System.Objectの0インスタンス0000万_invocationList
03d50a90 40001e5 18 System.IntPtr 1インスタンス0 _invocationCount

0:005>!行う- nofields 04f59c78 / /確認_targetは、ページです。
名前:SilverlightApplication1.Page
MethodTableの:04633a6c
EEClassに:0463196c
サイズ:68(0x44の)バイト
ファイル:SilverlightApplication1、バージョン= 1.0.0.0、文化=中立的なPublicKeyToken = nullを

/ / Button_Clickに_methodPtr点を確認してください
/ /それらがすべて一緒にリンクする方法を参照してください
0:005> LN 463c08c
(0463c08c)SilverlightApplication1.Page.Button_Click(System.Objectの、System.Windows.RoutedEventArgs)
0:005> U 463c08c / / JIT - edのメソッドのスタブ
SilverlightApplication1.Page.Button_Click(System.Objectの、System.Windows.RoutedEventArgs):
0463c08c b8303a6304 MOV EAX、4633A30h
0463c091 89ed MOV EBP、EBP
0463c093 e900431c00 JMP SilverlightApplication1!Button_Click(04800398)
0463c098 0000アドインBYTE PTR [EAX]、アル
0463c09a 0000アドインBYTE PTR [EAX]、アル
0463c09c 0000アドインBYTE PTR [EAX]、アル
0463c09e 0000アドインBYTE PTR [EAX]、アル
0463c0a0 0000アドインBYTE PTR [EAX]、アル
0:005> U EIP / / JIT - EDネイティブコード
!SilverlightApplication1 Button_Click:
04800398 55プッシュEBP
04800399 8bec MOV EBP、ESP
0480039b 83ec08サブESP、8
0480039e 894dfc MOV dwordのptr [EBP - 4]、ECX
048003a1 8955f8 MOV dwordのptr [EBP - 8]、EDX
048003a4 833d7435630400のcmp dwordのptrにDS:[4633574h]、0
048003ab 7405 JE SilverlightApplication1!Button_Click 0 X1A(048003b2)
048003ad e8862a895fコールcoreclr!JIT_DbgIsJustMyCode(64092e38)
0:005>!ip2md 04800398
MethodDesc:04633a30
メソッド名:SilverlightApplication1.Page.Button_Click(System.Objectの、System.Windows.RoutedEventArgs)
クラス:0463196c
MethodTableの:04633a6c
mdToken:06000008
モジュール:046333b4
IsJitted:はい
CodeAddr:04800398
0:005>!dumpil 04633a30
ilAddr = 047e03fe
IL_0000:NOP
IL_0001:RET

私は時間があるとき、私はメソッド呼び出しが等が送出される方法、オブジェクトがメモリにどのようにレイアウトされるかを示すために、CLRの内部でブログ記事を書くことができます

結論

これは長い記事ですが、まだそれはほとんどWinDbgおよびSOSの概要を構成する。 CLRの良い理解は、SOSでWinDbgを、コーディングやデバッグのために重要なのは、CLRを探検し、高度なデバッグを行うための最善のツールです。 この短いまだ長い記事は、あなたがCLRとSilverlightを検討することにも始めるのに役立つことを願っています。 ありがとう!

Technoratiのタグ:
Tags: , , , カテゴリー: デバッグSilverlightの タグ: