Структура DacpHeapSegmentData

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

Note

Этот API изначально был разработан для внутреннего использования во время выполнения. Хотя она теперь поддерживается для 3-го стороннего использования, мы рекомендуем по возможности работать с ICorDebugICorProfiler и API.

Syntax

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 Адрес следующего сегмента. Передайте это значение Request , если оно не равно NULL, чтобы получить следующий сегмент.
gc_heap Адрес кучи GC. Этот элемент заполняется только в режиме сервера; в противном случае — это NULL.
highAllocMark Высокий знак выделения. Если этот сегмент является временным сегментом, это значение включает в себя эфемерное поколение.
flags Флаги сегмента кучи.
background_allocated Фоновый выделенный адрес GC для сегмента.
Request Заполняет структуру путем вызова ISOSDacInterface::GetHeapSegmentData и вычислений highAllocMark.

Remarks

Эта структура находится внутри среды выполнения и не предоставляется с помощью каких-либо заголовков или файлов библиотеки. Чтобы использовать его, определите структуру, как указано выше.

Требования

Платформы: см. раздел Требования к системе.
Заголовок: Никакой
Библиотека: Никакой
версии платформы .NET: доступно с версии 4.7

См. также