Estructura DacpGcHeapDetails

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

Consulte también