詳細なガベージ コレクション ヒープ情報のトランスポート バッファーを定義します。
Note
この API はもともと、ランタイムで内部使用するために設計されました。 現在はサードパーティによる使用がサポートされていますが、可能な場合は API ICorDebug および ICorProfiler を使用することをお勧めします。
構文
#define DAC_NUMBERGENERATIONS 4
struct DacpGcHeapDetails : ZeroInit<DacpGcHeapDetails>
{
CLRDATA_ADDRESS heapAddr; // Only filled in in server mode, otherwise NULL
CLRDATA_ADDRESS alloc_allocated;
CLRDATA_ADDRESS mark_array;
CLRDATA_ADDRESS current_c_gc_state;
CLRDATA_ADDRESS next_sweep_obj;
CLRDATA_ADDRESS saved_sweep_ephemeral_seg;
CLRDATA_ADDRESS saved_sweep_ephemeral_start;
CLRDATA_ADDRESS background_saved_lowest_address;
CLRDATA_ADDRESS background_saved_highest_address;
DacpGenerationData generation_table [DAC_NUMBERGENERATIONS];
CLRDATA_ADDRESS ephemeral_heap_segment;
CLRDATA_ADDRESS finalization_fill_pointers [DAC_NUMBERGENERATIONS + 3];
CLRDATA_ADDRESS lowest_address;
CLRDATA_ADDRESS highest_address;
CLRDATA_ADDRESS card_table;
// Use this for workstation mode (DacpGcHeapData.bServerMode==FALSE).
HRESULT Request(ISOSDacInterface *sos)
{
return sos->GetGCHeapStaticData(this);
}
// Use this for Server mode, as there are multiple heaps,
// and you need to pass a heap address in addr.
HRESULT Request(ISOSDacInterface *sos, CLRDATA_ADDRESS addr)
{
return sos->GetGCHeapDetails(addr, this);
}
};
Members
| メンバー | 説明 |
|---|---|
heapAddr |
GC ヒープのアドレス。 このメンバーはサーバー モードでのみ入力されます。それ以外の場合は NULL。 |
alloc_allocated |
ヒープの現在の割り当てポインター。 |
mark_array |
マーク配列のアドレス。 |
current_c_gc_state |
現在の圧縮 GC 状態のアドレス。 |
next_sweep_obj |
スイープする次のオブジェクトのアドレス。 |
saved_sweep_ephemeral_seg |
スイープの保存されたエフェメラル セグメントのアドレス。 |
saved_sweep_ephemeral_start |
保存されたエフェメラル スイープ開始のアドレス。 |
background_saved_lowest_address |
バックグラウンド GC 状態用に保存された最も低いアドレス。 |
background_saved_highest_address |
バックグラウンド GC 状態用に保存された最も高いアドレス。 |
generation_table |
各 GC 生成のデータ を含む DacpGenerationData 構造体 の配列。 |
ephemeral_heap_segment |
エフェメラル ヒープ セグメントのアドレス。 |
finalization_fill_pointers |
最終処理の塗りつぶしポインターの配列。 |
lowest_address |
ヒープ内の最も低いアドレス。 |
highest_address |
ヒープ内の最も高いアドレス。 |
card_table |
GC カード テーブルのアドレス。 |
Request |
ワークステーション GC の ISOSDacInterface::GetGCHeapStaticData を呼び出すか、サーバー GC の ISOSDacInterface::GetGCHeapDetails を呼び出して構造体を設定します。 |
注釈
この構造体はランタイム内に存在し、ヘッダーまたはライブラリ ファイルを介して公開されることはありません。 これを使用するには、上で指定した構造を定義します。
必要条件
:「システム要件」を参照してください。
ヘッダ: 何一つ
図書館: 何一つ
.NET Framework のバージョン: 4.7 以降で利用可能
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET