Estrutura DacpGcHeapDetails

Define um buffer de transporte para informações detalhadas do 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

#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

Membro Descrição
heapAddr O endereço do heap do GC. Esse membro é preenchido somente no modo de servidor; caso contrário, será NULL.
alloc_allocated O ponteiro de alocação atual para o heap.
mark_array O endereço da matriz de marca.
current_c_gc_state O endereço do estado atual do GC de compactação.
next_sweep_obj O endereço do próximo objeto a ser limpo.
saved_sweep_ephemeral_seg O endereço do segmento efêmero salvo para uma varredura.
saved_sweep_ephemeral_start O endereço do início da varredura efêmera salva.
background_saved_lowest_address O endereço mais baixo salvo para o estado GC em segundo plano.
background_saved_highest_address O endereço mais alto salvo para o estado GC em segundo plano.
generation_table Uma matriz de estruturas DacpGenerationData com dados para cada geração de GC.
ephemeral_heap_segment O endereço do segmento de heap efêmero.
finalization_fill_pointers Uma matriz de ponteiros de preenchimento de finalização.
lowest_address O endereço mais baixo do heap.
highest_address O endereço mais alto do heap.
card_table O endereço da tabela de cartão GC.
Request Popula a estrutura chamando ISOSDacInterface::GetGCHeapStaticData o GC da estação de trabalho ou ISOSDacInterface::GetGCHeapDetails para o GC do servidor.

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