Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определяет буфер транспорта для подробных сведений о куче сборки мусора.
Note
Этот API изначально был разработан для внутреннего использования во время выполнения. Хотя она теперь поддерживается для 3-го стороннего использования, мы рекомендуем по возможности работать с ICorDebugICorProfiler и 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 |
Самый низкий адрес, сохраненный для фонового состояния GC. |
background_saved_highest_address |
Самый высокий адрес, сохраненный для фонового состояния GC. |
generation_table |
Массив структур DacpGenerationData с данными для каждого поколения GC. |
ephemeral_heap_segment |
Адрес эфемерного сегмента кучи. |
finalization_fill_pointers |
Массив указателей заливки завершения. |
lowest_address |
Самый низкий адрес в куче. |
highest_address |
Самый высокий адрес в куче. |
card_table |
Адрес таблицы карточек GC. |
Request |
Заполняет структуру, вызывая ISOSDacInterface::GetGCHeapStaticData GC рабочей станции или ISOSDacInterface::GetGCHeapDetails серверную сборку. |
Remarks
Эта структура находится внутри среды выполнения и не предоставляется с помощью каких-либо заголовков или файлов библиотеки. Чтобы использовать его, определите структуру, как указано выше.
Требования
Платформы: см. раздел Требования к системе.
Заголовок: Никакой
Библиотека: Никакой
версии платформы .NET: доступно с версии 4.7