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 obtener información detallada 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
#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
| Miembro | Descripción |
|---|---|
heapAddr |
Dirección del montón de GC. Este miembro solo se rellena en modo de servidor; de lo contrario, es NULL. |
alloc_allocated |
Puntero de asignación actual para el montón. |
mark_array |
Dirección de la matriz de marcas. |
current_c_gc_state |
Dirección del estado gc de compactación actual. |
next_sweep_obj |
Dirección del siguiente objeto que se va a barrir. |
saved_sweep_ephemeral_seg |
Dirección del segmento efímero guardado para un barrido. |
saved_sweep_ephemeral_start |
Dirección del inicio de barrido efímero guardado. |
background_saved_lowest_address |
La dirección más baja guardada para el estado de GC en segundo plano. |
background_saved_highest_address |
La dirección más alta guardada para el estado de GC en segundo plano. |
generation_table |
Matriz de estructuras DacpGenerationData con datos para cada generación de GC. |
ephemeral_heap_segment |
Dirección del segmento de montón efímero. |
finalization_fill_pointers |
Matriz de punteros de relleno de finalización. |
lowest_address |
Dirección más baja del montón. |
highest_address |
Dirección más alta del montón. |
card_table |
Dirección de la tabla de tarjetas GC. |
Request |
Rellena la estructura llamando a ISOSDacInterface::GetGCHeapStaticData gc de estación de trabajo o ISOSDacInterface::GetGCHeapDetails gc del servidor. |
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