Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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