SOS.dll (SOS デバッガー拡張)
更新 : 2011 年 4 月
SOS デバッガー拡張 (SOS.dll) を使用して内部の共通言語ランタイム (CLR: Common Language Runtime) 環境に関する情報を渡すことにより、WinDbg.exe デバッガーおよび Visual Studio でマネージ プログラムをデバッグできます。 このツールを使用するには、プロジェクトでアンマネージ デバッグが有効になっている必要があります。 また、Windows デバッガー (WinDbg.exe) で SOS デバッガー拡張を使用することもできます。
このツールは Visual Studio および Windows SDK と一緒に自動的にインストールされます。 このツールを実行するには、Visual Studio コマンド プロンプトまたは Windows SDK コマンド プロンプト (CMD シェル) を使用することをお勧めします。 これらのユーティリティを使用すると、インストール フォルダーに移動することなくツールを簡単に実行できます。 詳細については、「Visual Studio と Windows SDK のコマンド プロンプト」を参照してください。
コンピューターに Visual Studio がインストールされている場合は、タスク バーの [Start] ボタンをクリックし、[All Programs]、[Visual Studio]、[Visual Studio Tools]、[Visual Studio Command Prompt] の順にクリックします。
または
コンピューターに Windows SDK がインストールされている場合は、タスク バーの [Start] ボタンをクリックし、[All Programs]、Windows SDK のフォルダー、[Command Prompt] (または [CMD Shell]) の順にクリックします。
コマンド プロンプトに次のように入力します。
![command] [options]
コマンド
コマンド |
説明 |
---|---|
AnalyzeOOM (ao) |
ガベージ コレクション ヒープへの割り当て要求で発生した最後の OOM に対する情報を表示します。 サーバーのガベージ コレクションでは、ガベージ コレクション ヒープごとに OOM を表示します (存在する場合)。 |
BPMD [-nofuturemodule] [<module name> <method name>] [-md <MethodDesc>] -list -clear <pending breakpoint number> -clearall |
指定したモジュールの指定したメソッドにブレークポイントを作成します。 指定したモジュールとメソッドが読み込まれていない場合、このコマンドは、モジュールが読み込まれ、Just-In-Time (JIT) コンパイルが終了したことを示す通知を受け取るまで待機してから、ブレークポイントを作成します。 -list、-clear、および -clearall の各オプションを使用して、保留中のブレークポイントのリストを管理できます。
|
CLRStack [-a] [-l] [-p] [-n] |
マネージ コードのみのスタック トレースを提供します。
x64 ベースおよび IA-64 ベースのプラットフォーム上では、SOS デバッガー拡張で遷移フレームは表示されません。 |
COMState |
COM アパートメント モデルを使用可能な場合、各スレッドと Context ポインターについてモデルを一覧表示します。 |
DumpArray [-start <startIndex>] [-length <length>] [-details] [-nofields] <array object address> または DA [-start <startIndex>] [-length <length>] [-detail] [-nofields] array object address> |
配列オブジェクトの要素を調べます。
|
DumpAssembly <assembly address> |
アセンブリに関する情報を表示します。 DumpAssembly コマンドは、複数のモジュールが存在する場合はそれらを一覧表示します。 DumpDomain コマンドを使用するとアセンブリ アドレスを取得できます。 |
DumpClass <EEClass address> |
型に関連付けられている EEClass 構造体に関する情報を表示します。 DumpClass コマンドを実行すると静的なフィールド値は表示されますが、静的でないフィールド値は表示されません。 DumpMT、DumpObj、Name2EE、または Token2EE コマンドを使用して、EEClass 構造体のアドレスを取得します。 |
DumpDomain [<domain address>] |
指定した AppDomain オブジェクトのアドレス内に読み込まれている各 Assembly オブジェクトを列挙します。 パラメーターを指定しないで呼び出すと、DumpDomain コマンドはプロセス内のすべての AppDomain オブジェクトを一覧表示します。 |
DumpHeap [-stat] [-strings] [-short] [-min <size>] [-max <size>] [-thinlock] [-startAtLowerBound] [-mt <MethodTable address>] [-type <partial type name>][start [end]] |
ガベージ コレクトされたヒープと、オブジェクトの収集統計に関する情報を表示します。 ガベージ コレクター ヒープが過剰に断片化されていることを DumpHeap コマンドが検出すると、警告が表示されます。
|
DumpIL <Managed DynamicMethod object> | <DynamicMethodDesc pointer> | <MethodDesc pointer> |
マネージ メソッドに関連付けられている Microsoft Intermediate Language (MSIL) を表示します。 動的な MSIL は、アセンブリから読み込まれた MSIL とは異なる形式で出力されます。 動的な MSIL は、メタデータ トークンではなくマネージ オブジェクト配列内のオブジェクトを参照します。 |
DumpLog [-addr <addressOfStressLog>] [<Filename>] |
メモリ内ストレス ログの内容を、指定したファイルに書き込みます。 名前を指定しないと、現在のディレクトリ内に StressLog.txt という名前のファイルが作成されます。 メモリ内ストレス ログを使用すると、ロックまたは I/O を使用せずにストレス エラーを診断できます。 ストレス ログを有効にするには、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework の下に次のレジストリ キーを設定します。 (DWORD) StressLog = 1 (DWORD) LogFacility = 0xffffffff (DWORD) StressLogSize = 65536 省略可能な -addr オプションを使用すると、デフォルト ログ以外のストレス ログを指定できます。 |
DumpMD <MethodDesc address> |
指定したアドレスにある MethodDesc 構造体に関する情報を表示します。 IP2MD コマンドを使用すると、マネージ関数から MethodDesc 構造体のアドレスを取得できます。 |
DumpMT [-MD] <MethodTable address> |
指定したアドレスにあるメソッド テーブルに関する情報を表示します。 -MD オプションを指定すると、オブジェクトに定義されているすべてのメソッドの一覧が表示されます。 各マネージ オブジェクトにメソッド テーブルのポインターが含まれています。 |
DumpMethodSig <sigaddr> <moduleaddr> |
指定したアドレスにある MethodSig 構造体に関する情報を表示します。 |
DumpModule [-mt] <Module address> |
指定したアドレスにあるモジュールに関する情報を表示します。 -mt オプションは、モジュール内に定義されている型とモジュールから参照される型を表示します。 DumpDomain コマンドまたは DumpAssembly コマンドを使用すると、モジュールのアドレスを取得できます。 |
DumpObj [-nofields] <object address> または DO <object address> |
指定したアドレスにあるオブジェクトに関する情報を表示します。 DumpObj コマンドを実行すると、フィールド、EEClass 構造体の情報、メソッド テーブル、およびオブジェクトのサイズが表示されます。 DumpStackObjects コマンドを使用すると、オブジェクトのアドレスを取得できます。 CLASS 型のフィールドはオブジェクトであるため、この型に対しても DumpObj コマンドを実行できます。 -nofields オプションは、オブジェクトのフィールドが表示されないようにします。これは、String のようなオブジェクトに便利です。 |
DumpRuntimeTypes |
ガベージ コレクター ヒープの中にあるランタイムの型オブジェクトを表示し、それらに関連付けられている型名とメソッド テーブルを一覧表示します。 |
DumpStack [-EE] [-n] [top stack [bottom stack]] |
スタック トレースを表示します。
x86 および x64 プラットフォーム上では、DumpStack コマンドによって詳細なスタック トレースが作成されます。 IA-64 ベースのプラットフォーム上では、DumpStack コマンドはデバッガーの K コマンドと同様の動作を実行します。 IA-64 ベースのプラットフォーム上では、top パラメーターと bottom パラメーターは無視されます。 |
DumpSig <sigaddr> <moduleaddr> |
指定したアドレスにある Sig 構造体に関する情報を表示します。 |
DumpSigElem <sigaddr> <moduleaddr> |
署名オブジェクトの 1 つの要素を表示します。 通常、個別の署名オブジェクトを調べるには DumpSig を使用する必要があります。 ただし、署名になんらかの破損がある場合は、DumpSigElem を使用して署名の無効な部分を読み取ることができます。 |
DumpStackObjects [-verify] [top stack [bottom stack]] または DSO [-verify] [top stack [bottom stack]] |
現在のスタックの範囲内で見つかったすべてのマネージ オブジェクトを表示します。 -verify オプションは、オブジェクト フィールドの静的でない各 CLASS フィールドを検証します。 K コマンド、CLRStack コマンドなどのスタック トレース コマンドと共に DumpStackObject コマンドを使用して、ローカル変数とパラメーターの値を確認します。 |
DumpVC <MethodTable address> <Address> |
指定したアドレスにある値クラスのフィールドに関する情報を表示します。 DumpVC コマンドで MethodTable パラメーターを指定すると、フィールドを正しく解釈できます。 値クラスでは、最初のフィールドがメソッド テーブルになることはありません。 |
EEHeap [-gc] [-loader] |
内部の共通言語ランタイム データ構造体によって消費されるプロセス メモリに関する情報を表示します。 -gc オプションと -loader オプションは、このコマンドによる出力を、ガベージ コレクターまたはローダーのデータ構造体のいずれかに制限します。 ガベージ コレクターの場合、マネージ ヒープの各セグメントの範囲内にある情報が一覧表示されます。 ポインターが -gc で指定されたセグメント内にある場合、そのポインターはオブジェクト ポインターです。 |
EEStack [-short] [-EE] |
プロセス内のすべてのスレッドに対して DumpStack コマンドを実行します。 -EE オプションは、DumpStack コマンドに直接渡されます。 -short パラメーターは、次の種類のスレッドに制限してその内容を出力します。
|
EEVersion |
共通言語ランタイムのバージョンを表示します。 |
EHInfo [<MethodDesc address>] [<Code address>] |
指定したメソッドの例外処理ブロックを表示します。 このコマンドを使用すると、句ブロック (try ブロック) およびハンドラー ブロック (catch ブロック) のコード アドレスとオフセットが表示されます。 |
FAQ |
よく寄せられる質問を表示します。 |
FinalizeQueue [-detail] | [-allReady] [-short] |
完了の目的で登録されているすべてのオブジェクトを表示します。
|
FindAppDomain <Object address> |
指定したアドレスにあるオブジェクトのアプリケーション ドメインを確認します。 |
FindRoots -gen <N> | -gen any |<object address> |
指定したジェネレーションの次のコレクションでデバッガーがデバッグ対象を中断するようにします。 中断が発生すると、このオプションの効果はすぐにリセットされます。 次のコレクションで中断するには、コマンドを再度実行する必要があります。 このコマンドの <object address> 形式は、-gen または -gen any による中断が発生した後で使用します。 この時点で、デバッグ対象は FindRoots が現在の無効なジェネレーションからオブジェクトのルートを識別するのに適した状態になっています。 |
GCHandles [-perdomain] |
プロセス内のガベージ コレクター ハンドルに関する統計を表示します。 -perdomain オプションは、アプリケーション ドメイン別に統計を再配置します。 GCHandles コマンドを使用して、ガベージ コレクター ハンドルのリークによって発生するメモリ リークを検索します。 たとえば、厳密なガベージ コレクター ハンドルが大きな配列を指しているためコードがその配列を保持したままになっているときに、その配列を解放せずにハンドルを破棄すると、メモリ リークが発生します。 |
GCHandleLeaks |
プロセスの強力なガベージ コレクター ハンドルおよび固定されたガベージ コレクター ハンドルへの参照についてメモリ内を検索し、結果を表示します。 ハンドルが見つかった場合、GCHandleLeaks コマンドは参照のアドレスを表示します。 メモリ内にハンドルが見つからない場合、このコマンドは通知を表示します。 |
GCInfo <MethodDesc address><Code address> |
レジスタまたはスタックの場所にマネージ オブジェクトが格納された時期を示すデータを表示します。 ガベージ コレクションを実行する場合は、コレクターはオブジェクトに対する参照の場所を把握しておく必要があります。その結果、新しいオブジェクト ポインターの値を使用して参照を更新できます。 |
GCRoot [-nostacks] <Object address> |
指定したアドレスにあるオブジェクトへの参照 (またはルート) に関する情報を表示します。 GCRoot コマンドは、マネージ ヒープ全体と、スタック上の他のオブジェクトおよびハンドル内にあるハンドルから成るハンドル テーブルを調べます。 次に、オブジェクトへのポインターについて各スタックを検索し、さらにファイナライザー キューも検索します。 このコマンドは、スタック ルートが有効かまたは破棄されているかどうかを確認しません。 スタック ルートが使用中であるかどうかを確認するには、CLRStack コマンドと U コマンドを使用して、ローカルまたは引数の値が属するフレームを逆アセンブルします。 -nostacks オプションは、ガベージ コレクター ハンドルおよび到達可能なオブジェクトのみを検索するよう制限を加えます。 |
GCWhere <object address> |
渡された引数のガベージ コレクション ヒープ内での位置とサイズを表示します。 引数がマネージ ヒープ内にあっても、有効なオブジェクト アドレスではない場合は、サイズは 0 (ゼロ) と表示されます。 |
help [<command>] [faq] |
パラメーターを指定しない場合は、使用できるすべてのコマンドを表示します。パラメーターとしてコマンドを指定した場合は、そのコマンドに関する詳細なヘルプを表示します。 faq パラメーターを指定すると、よく寄せられる質問に対する回答が表示されます。 |
HeapStat [-inclUnrooted | -iu] |
各ヒープのジェネレーション サイズ、および各ヒープの各ジェネレーションでの合計空き領域を表示します。 -inclUnrooted オプションを指定すると、レポートには既にルートがないガベージ コレクション ヒープからのマネージ オブジェクトに関する情報が含まれます。 |
HistClear |
Hist コマンドのファミリによって使用されているすべてのリソースを解放します。 通常は、HistClear を明示的に呼び出す必要はありません。各 HistInit が前のリソースをクリーンアップします。 |
HistInit |
デバッグ対象に保存されているストレス ログから SOS 構造体を初期化します。 |
HistObj <obj_address> |
すべてのストレス ログ再配置レコードを調べて、引数として渡されたアドレスになった可能性のあるガベージ コレクション再配置のチェーンを表示します。 |
HisttObjFind <obj_address> |
指定したアドレスにあるオブジェクトを参照するすべてのログ エントリを表示します。 |
HistRoot <root> |
指定したルートの上位変換と再配置の両方に関係する情報を表示します。 ルートの値を使用すると、ガベージ コレクション内でのオブジェクトの移動を追跡できます。 |
IP2MD <Code address> |
JIT コンパイルされたコード内の指定したアドレスにある MethodDesc 構造体を表示します。 |
ListNearObj (lno) <obj_address> |
指定したアドレスの前および後にあるオブジェクトを表示します。 このコマンドは、マネージ オブジェクトの開始時に (有効メソッド テーブルに基づいて) 有効であると考えられるガベージ コレクション ヒープ内のアドレス、および引数アドレスの後のオブジェクトを検索します。 |
MinidumpMode [0] [1] |
ミニダンプを使用するときに安全でないコマンドが実行されるのを防止します。 この機能を無効にするには 0 を渡し、機能を有効にするには 1 を渡します。 既定では、MinidumpMode の値は 0 に設定されます。 .dump /m コマンドまたは .dump コマンドで作成されるミニダンプの内容は CLR 固有のデータに制限され、このミニダンプは SOS コマンドのサブセットでのみ正しく実行できます。 一部のコマンドはメモリの必要領域が割り当てられていないか一部分しか割り当てられていないため、予期しないエラーが発生して失敗することがあります。 このオプションは、ミニダンプに対して安全でないコマンドが実行されるのを防止します。 |
Name2EE <module name> <type or method name> または Name2EE <module name>!<type or method name> |
指定したモジュール内の指定した型またはメソッドの MethodTable 構造体および EEClass 構造体を表示します。 指定したモジュールをプロセスに読み込む必要があります。 適切な型名を取得するには、Ildasm.exe (MSIL 逆アセンブラー) を使用してモジュールを参照します。 また、* を module name パラメーターとして渡すと、読み込まれているすべてのマネージ モジュールを検索できます。 module name パラメーターには、mscorlib、image00400000 など、デバッガーのモジュールの名前も指定できます。 このコマンドは、Windows のデバッガー構文 <module>!<type> をサポートします。 型は、完全修飾する必要があります。 |
ObjSize [<Object address>] | [-aggregate] [-stat] |
指定したオブジェクトのサイズを表示します。 パラメーターを何も指定しないで ObjSize コマンドを使用すると、マネージ スレッドで見つかったすべてのオブジェクトのサイズが表示され、プロセス内のすべてのガベージ コレクター ハンドル、およびそれらのハンドルが指すオブジェクトのサイズの合計が表示されます。 ObjSize コマンドの結果には、親オブジェクトに加え、すべての子オブジェクトのサイズが含まれます。 -aggregate オプションを -stat 引数と組み合わせて使用すると、まだルートがある型の詳細なビューを取得できます。 !dumpheap -stat と !objsize -aggregate -stat を使用することで、既にルートがなくなっているオブジェクトを判別し、メモリに関するさまざまな問題を診断できます。 |
PrintException [-nested] [-lines] [<Exception object address>] または PE [-nested] [<Exception object address>] |
指定したアドレスにある Exception クラスから派生したすべてのオブジェクトのフィールドが表示および書式設定されます。 アドレスを指定しないで PrintException コマンドを使用すると、現在のスレッドで最後にスローされた例外が表示されます。
このコマンドを使用すると、バイナリ配列の _stackTrace フィールドを書式設定して表示できます。 |
ProcInfo [-env] [-time] [-mem] |
プロセスの環境変数、カーネル CPU 時間、およびメモリ使用率統計を表示します。 |
RCWCleanupList <RCWCleanupList address> |
指定したアドレスにあり、クリーンアップを待っているランタイム呼び出し可能ラッパーの一覧を表示します。 |
SaveModule <Base address> <Filename> |
メモリ内の指定したアドレスに読み込まれているイメージを、指定したファイルに書き込みます。 |
SOSFlush |
内部 SOS キャッシュをフラッシュします。 |
StopOnException [-derived] [-create | -create2] <Exception> <Pseudo-register number> |
指定した例外がスローされたときにデバッガーを停止しますが、それ以外の例外がスローされたときは実行を続行します。 -derived オプションは、指定した例外、および指定した例外から派生したすべての例外をキャッチします。 |
SyncBlk [-all | <syncblk number>] |
指定した SyncBlock 構造体またはすべての SyncBlock 構造体を表示します。 SyncBlk コマンドに引数を渡さない場合は、スレッドが所有しているオブジェクトに対応する SyncBlock 構造体が表示されます。 SyncBlock 構造体は、オブジェクトによっては作成する必要のないこともある追加情報のコンテナーです。 この構造体は、COM 相互運用機能データ、ハッシュ コード、およびスレッド セーフ操作用のロック情報を保持できます。 |
ThreadPool |
キュー内の作業要求の数、完了ポート スレッドの数、タイマーの数を含め、マネージ スレッド プールに関する情報を表示します。 |
Token2EE <module name> <token> |
指定したモジュール内の指定したメタデータ トークンを MethodTable 構造体または MethodDesc 構造体に変換します。 module name パラメーターに * を渡すと、読み込まれているすべてのマネージ モジュール内にあるそのトークンの割り当て先を検索できます。 また、デバッガーの mscorlib、image00400000 などのモジュール名を渡すこともできます。 |
Threads [-live] [-special] |
プロセス内のすべてのマネージ スレッドを表示します。 Threads コマンドを使用すると、デバッガーの短縮 ID、共通言語ランタイムのスレッド ID、およびオペレーティング システムのスレッド ID が表示されます。 さらに、Threads コマンドでは、スレッドを実行しているアプリケーション ドメインを示すドメイン列、COM アパートメント モードが表示される APT 列、およびスレッド内の最後にスローされた例外が表示される例外列が表示されます。
|
ThreadState <State value field> |
スレッドの状態を表示します。 value パラメーターは、Threads レポート出力の State フィールドの値です。 例:
|
TraverseHeap [-xml] <filename> |
ヒープ情報を、CLR プロファイラーが処理できる形式で指定したファイルに書き込みます。 TraverseHeap コマンドの -xml オプションを指定すると、ファイルが XML 形式として設定されます。 CLR プロファイラーは、Microsoft ダウンロード センターからダウンロードできます。 |
U [-gcinfo] [-ehinfo] [-n] <MethodDesc address> | <Code address> |
メソッドの MethodDesc 構造体ポインターまたはメソッド本体のコード アドレスで指定したマネージ メソッドの注釈付き逆アセンブリを表示します。 U コマンドを使用すると、開始から終了までのすべてのメソッドが、メタデータ トークンを名前に変換する注釈付きで表示されます。
|
VerifyHeap |
ガベージ コレクター ヒープの破損の兆候をチェックし、検出されたすべてのエラーを表示します。 ヒープが正しく構築されていない場合、プラットフォームが呼び出しを実行したことが原因で、ヒープが破損する可能性があります。 |
VerifyObj <object address> |
引数として渡されたオブジェクトで破損の兆候を調べます。 |
VMMap |
仮想アドレス空間を走査し、各領域に適用されている保護方法の種類を表示します。 |
VMStat |
仮想アドレス空間の概要を、そのメモリに適用されている保護方法の種類 (保護なし、予約済み、コミット、プライベート、割り当て済み、イメージ) の順に表示します。 AVERAGE 列に BLK COUNT 列を掛けた結果が TOTAL 列に表示されます。 |
解説
SOS デバッガー拡張は、WDK および開発者用ツールの Web サイトから入手できる WinDbg.exe デバッガー、または Visual Studio に読み込んで使用します。 WinDgb.exe 内または Visual Studio のイミディエイト ウィンドウ内でコマンドを実行できます。
SOS デバッガー拡張を使用すると、共通言語ランタイム内部で実行しているコードに関する情報を表示できます。 たとえば、SOS デバッガー拡張を使用して、マネージ ヒープに関する情報の表示、ヒープ破損の検索、ランタイムが使用している内部データ型の表示、およびランタイム内部で実行しているすべてのマネージ コードに関する情報の表示を行うことができます。
SOS デバッガー拡張の読み込み
WinDbg.exe デバッガーに SOS デバッガー拡張を読み込むには、ツールで次のコマンドを実行します。
.loadby sos clr
Visual Studio に SOS デバッガー拡張を読み込むには、デバッグ時にイミディエイト ウィンドウで次のコマンドを実行します。
.load SOS.dll
コマンドが成功すると、次のメッセージがイミディエイト ウィンドウに返されます。
extension C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\sos.dll loaded
SOS デバッガー拡張を読み込む前に、ソリューションのプロジェクト設定でアンマネージ デバッグを有効にする必要があります。 一部の言語では、アンマネージ デバッグが既定で無効になっています。 一部のプラットフォームでは、マネージ コードとアンマネージ コードを同時にデバッグすることはできません。
メモ |
---|
Visual Studio でイミディエイト ウィンドウを表示するには、[デバッグ] メニューの [ウィンドウ] をポイントし、[イミディエイト] をクリックします。また、Ctrl キーと Alt キーを押しながら I キーを押して、Visual Studio のイミディエイト ウィンドウを開くこともできます。 |
WinDbg.exe と Visual Studio は、現在使用している Mscorwks.dll のバージョンに対応する SOS.dll のバージョンを使用します。 .NET Framework の Version 1.1 および 2.0 では、SOS.dll は Mscorwks.dll と同じディレクトリにインストールされます。 既定では、Mscorwks.dll の現在のバージョンに一致する SOS.dll のバージョンを使用することになります。
別のコンピューターで作成されたダンプ ファイルを使用するには、そのインストールに付属していた Mscorwks.dll ファイルが現在のコンピューターのシンボル パスにあることを確認し、対応するバージョンの SOS.dll を読み込みます。
特定のバージョンの SOS.dll を読み込むには、Windows デバッガーに次のコマンドを入力します。
.load <full path to sos.dll>
例
次のコマンドは、アドレス 00ad28d0 にある配列の内容を表示します。 2 番目の要素およびそれ以降にある合計 5 つの要素が表示されます。
!dumparray -start 2 -length 5 -detail 00ad28d0
次のコマンドは、アドレス 1ca248 にあるアセンブリの内容を表示します。
!dumpassembly 1ca248
次のコマンドは、ガベージ コレクター ヒープに関する情報を表示します。
!dumpheap
次のコマンドは、メモリ内ストレス ログの内容を、現在のディレクトリ内にある StressLog.txt という名前の (既定の) ファイルに書き込みます。
!DumpLog
次のコマンドは、アドレス 902f40 にある MethodDesc 構造体を表示します。
!dumpmd 902f40
次のコマンドは、アドレス 1caa50 にあるモジュールに関する情報を表示します。
!dumpmodule 1caa50
次のコマンドは、アドレス a79d40 にあるオブジェクトに関する情報を表示します。
!DumpObj a79d40
次のコマンドは、アドレス 0090320c にあるメソッド テーブルを使用して、アドレス 00a79d9c にある値クラスのフィールドを表示します。
!DumpVC 0090320c 00a79d9c
次のコマンドは、ガベージ コレクターによって使用されるプロセス メモリを表示します。
!eeheap -gc
次のコマンドは、完了の目的でスケジュールされているすべてのオブジェクトを表示します。
!finalizequeue
次のコマンドは、アドレス 00a79d98 にあるオブジェクトのアプリケーション ドメインを確認します。
!findappdomain 00a79d98
次のコマンドは、現在のプロセス内のすべてのガベージ コレクター ハンドルを表示します。
!gcinfo 5b68dbb8
次のコマンドは、unittest.exe モジュールにある MainClass クラスの Main メソッドの MethodTable 構造体および EEClass 構造体を表示します。
!name2ee unittest.exe MainClass.Main
次のコマンドは、unittest.exe モジュールのアドレス 02000003 にあるメタデータ トークンに関する情報を表示します。
!token2ee unittest.exe 02000003
参照
参照
Visual Studio と Windows SDK のコマンド プロンプト
その他の技術情報
履歴の変更
日付 |
履歴 |
理由 |
---|---|---|
2011 年 4 月 |
Visual Studio と Windows SDK のコマンド プロンプトの使用に関する情報を追加。 |
情報の拡充 |