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 a informação do segmento 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
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 do heap. |
allocated |
O endereço da parte atribuída do segmento. |
committed |
O endereço até ao qual a memória é comprometida para o segmento. |
reserved |
O endereço até ao qual a memória está reservada para o segmento. |
used |
O endereço até ao qual a memória é usada para o segmento. |
mem |
O endereço inicial da memória segmentada. |
next |
O endereço do próximo segmento. Passe este valor para Request se for não nulo para recuperar o segmento seguinte. |
gc_heap |
O endereço do heap do GC. Este membro é preenchido apenas em modo servidor; caso contrário, é NULL. |
highAllocMark |
A marca elevada de alocação. Se este segmento for o segmento efémero, este valor inclui a geração efémera. |
flags |
O segmento do heap sinaliza. |
background_allocated |
O GC de fundo atribuía o endereço para o segmento. |
Request |
Preenche a estrutura chamando ISOSDacInterface::GetHeapSegmentData e calculando highAllocMark. |
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