DacpGcHeapDetails 構造体

詳細なガベージ コレクション ヒープ情報のトランスポート バッファーを定義します。

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 以降で利用可能

こちらも参照ください