Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Define un búfer de transporte para la información del segmento del montón de recolección de elementos no utilizados.
Note
Esta API se diseñó originalmente para su uso interno en tiempo de ejecución. Aunque ahora es compatible con el uso de terceros, se recomienda trabajar con las API ICorDebug y ICorProfiler siempre que sea posible.
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
| Miembro | Descripción |
|---|---|
segmentAddr |
Dirección del segmento del montón. |
allocated |
Dirección de la parte asignada del segmento. |
committed |
Dirección hasta la que se confirma la memoria para el segmento. |
reserved |
Dirección a la que se reserva memoria para el segmento. |
used |
Dirección hasta la que se usa la memoria para el segmento. |
mem |
Dirección inicial de la memoria del segmento. |
next |
Dirección del siguiente segmento. Pase este valor a Request si no es NULL para recuperar el siguiente segmento. |
gc_heap |
Dirección del montón de GC. Este miembro solo se rellena en modo de servidor; de lo contrario, es NULL. |
highAllocMark |
Marca de asignación alta. Si este segmento es el segmento efímero, este valor incluye la generación efímera. |
flags |
Marcas de segmento del montón. |
background_allocated |
Dirección asignada de GC en segundo plano para el segmento. |
Request |
Rellena la estructura llamando a ISOSDacInterface::GetHeapSegmentData y calcula highAllocMark. |
Remarks
Esta estructura reside dentro del tiempo de ejecución y no se expone a través de ningún encabezado o archivo de biblioteca. Para usarlo, defina la estructura como se especificó anteriormente.
Requisitos
Plataformas: Consulte Requisitos del sistema.
Encabezado: Ninguno
Biblioteca: Ninguno
versiones de .NET Framework: disponibles desde la versión 4.7