Estrutura DacpGcHeapDetails

Define um buffer de transporte para informação detalhada do monte de recolha de lixo.

Note

Esta API foi originalmente projetada para uso interno no tempo de execução. Embora agora seja suportado para uso de terceiros 3rd, recomendamos trabalhar com ICorDebug e ICorProfiler APIs quando possível.

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

Membro Descrição
heapAddr O endereço do heap do GC. Este membro é preenchido apenas em modo servidor; caso contrário, é NULL.
alloc_allocated O ponteiro atual de alocação para o heap.
mark_array O endereço da matriz de marcas.
current_c_gc_state O endereço do atual estado de compactação da GC.
next_sweep_obj O endereço do próximo objeto a varrer.
saved_sweep_ephemeral_seg O endereço do segmento efémero guardado para uma varredura.
saved_sweep_ephemeral_start O endereço da varrida efémera salva começa.
background_saved_lowest_address O endereço mais baixo guardado para o estado de GC em segundo plano.
background_saved_highest_address O endereço mais alto guardado para o estado de GC em segundo plano.
generation_table Um array de estruturas DacpGenerationData com dados para cada geração de GC.
ephemeral_heap_segment O endereço do segmento do heap efémero.
finalization_fill_pointers Um array 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 mesa de cartas do GC.
Request Preenche a estrutura chamando ISOSDacInterface::GetGCHeapStaticData o GC da estação de trabalho ou ISOSDacInterface::GetGCHeapDetails o GC do servidor.

Remarks

Essa estrutura vive dentro do tempo de execução e não é exposta através de cabeçalhos ou arquivos de biblioteca. Para o usar, defina a estrutura conforme especificado acima.

Requisitos

Plataformas: Consulte Requisitos do sistema.
Cabeçalho: Nenhum
Biblioteca: Nenhum
Versões do .NET Framework: Disponíveis desde a 4.7

Consulte também