DacpHeapSegmentData 構造体

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

Note

この API はもともと、ランタイムで内部使用するために設計されました。 現在はサードパーティによる使用がサポートされていますが、可能な場合は API ICorDebug および ICorProfiler を使用することをお勧めします。

構文

struct DacpHeapSegmentData
    : ZeroInit<DacpHeapSegmentData>
{
    CLRDATA_ADDRESS segmentAddr;
    CLRDATA_ADDRESS allocated;
    CLRDATA_ADDRESS committed;
    CLRDATA_ADDRESS reserved;
    CLRDATA_ADDRESS used;
    CLRDATA_ADDRESS mem;
    // pass this to request if non-null to get the next segments.
    CLRDATA_ADDRESS next;
    CLRDATA_ADDRESS gc_heap; // only filled in in server mode, otherwise NULL
    // computed field: if this is the ephemeral segment highMark includes the ephemeral generation
    CLRDATA_ADDRESS highAllocMark;

    size_t flags;
    CLRDATA_ADDRESS background_allocated;

    HRESULT Request(ISOSDacInterface *sos, CLRDATA_ADDRESS addr, const DacpGcHeapDetails& heap)
    {
        HRESULT hr = sos->GetHeapSegmentData(addr, this);

        // if this is the start segment, set highAllocMark too.
        if (SUCCEEDED(hr))
        {
            // TODO:  This needs to be put on the Dac side.
            if (this->segmentAddr == heap.generation_table[0].start_segment)
                highAllocMark = heap.alloc_allocated;
            else
                highAllocMark = allocated;
        }    
        return hr;
    }
};

Members

メンバー 説明
segmentAddr ヒープ セグメントのアドレス。
allocated セグメントの割り当てられた部分のアドレス。
committed セグメントに対してメモリがコミットされる最大アドレス。
reserved セグメント用に予約されているメモリまでのアドレス。
used セグメントに使用されるメモリまでのアドレス。
mem セグメント メモリの開始アドレス。
next 次のセグメントのアドレス。 次のセグメントを取得するために null 以外の場合は、この値を Request に渡します。
gc_heap GC ヒープのアドレス。 このメンバーはサーバー モードでのみ入力されます。それ以外の場合は NULL
highAllocMark 高い割り当てマーク。 このセグメントがエフェメラル セグメントの場合、この値にはエフェメラル生成が含まれます。
flags ヒープ セグメント フラグ。
background_allocated セグメントに割り当てられたバックグラウンド GC アドレス。
Request ISOSDacInterface::GetHeapSegmentDataを呼び出して構造体を設定し、highAllocMarkを計算します。

注釈

この構造体はランタイム内に存在し、ヘッダーまたはライブラリ ファイルを介して公開されることはありません。 これを使用するには、上で指定した構造を定義します。

必要条件

:システム要件」を参照してください。
ヘッダ: 何一つ
図書館: 何一つ
.NET Framework のバージョン: 4.7 以降で利用可能

こちらも参照ください