Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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