Estrutura DacpHeapSegmentData

Define um buffer de transporte para informações do segmento de heap de coleta de lixo.

Note

Essa API foi originalmente desenvolvida para uso interno no runtime. Embora ela agora tenha suporte para uso de terceiros, recomendamos trabalhar com as APIs ICorDebug e ICorProfiler quando possível.

Sintaxe

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

Membro Descrição
segmentAddr O endereço do segmento de heap.
allocated O endereço da parte alocada do segmento.
committed O endereço até o qual a memória é confirmada para o segmento.
reserved O endereço até o qual a memória está reservada para o segmento.
used O endereço até o qual a memória é usada para o segmento.
mem O endereço inicial da memória do segmento.
next O endereço do próximo segmento. Passe esse valor para Request se ele não for nulo para recuperar o próximo segmento.
gc_heap O endereço do heap do GC. Esse membro é preenchido somente no modo de servidor; caso contrário, será NULL.
highAllocMark A marca de alocação alta. Se esse segmento for o segmento efêmero, esse valor incluirá a geração efêmera.
flags Os sinalizadores de segmento de heap.
background_allocated O endereço alocado do GC em segundo plano para o segmento.
Request Popula a estrutura chamando ISOSDacInterface::GetHeapSegmentData e computa highAllocMark.

Remarks

Essa estrutura reside dentro do runtime e não é exposta por meio de cabeçalhos ou arquivos de biblioteca. Para usá-la, defina a estrutura conforme especificado acima.

Requisitos

Plataformas: confira Requisitos do sistema.
Cabeçalho: Nenhum
Biblioteca: Nenhum
versões do .NET Framework: disponíveis desde 4.7

Consulte também