ガベージ コレクション ヒープ セグメント情報のトランスポート バッファーを定義します。
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 以降で利用可能
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET