定義一個傳輸緩衝區,以提供詳細的垃圾回收堆資訊。
Note
此 API 原本是針對運行時間內部使用所設計。 雖然現在支援第三方使用,但建議您盡可能使用 ICorDebug 和 ICorProfiler API。
Syntax
#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 |
背景綠卡狀態中保存的最低地址。 |
background_saved_highest_address |
背景GC州保存的最高地址。 |
generation_table |
一個包含每一代 GC 資料的 DacpGenerationData 結構 陣列。 |
ephemeral_heap_segment |
短暫堆段的位址。 |
finalization_fill_pointers |
一系列 finalization 填充指標。 |
lowest_address |
堆裡最低的地址。 |
highest_address |
堆裡最高的地址。 |
card_table |
GC卡片桌的地址。 |
Request |
透過呼叫 ISOSDacInterface::GetGCHeapStaticData 工作站 GC 或 ISOSDacInterface::GetGCHeapDetails 伺服器 GC 來填充結構。 |
Remarks
此結構位於運行時間內,不會透過任何標頭或庫檔案公開。 使用時,請依上述定義結構。
要求
平台:請參閱系統需求。
標題: 沒
圖書館: 沒
.NET Framework 版本:自 4.7 版本起可用