Структура DacpGcHeapDetails

Определяет буфер транспорта для подробных сведений о куче сборки мусора.

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

См. также