Struttura DacpHeapSegmentData

Definisce un buffer di trasporto per informazioni sul segmento heap di Garbage Collection.

Note

Questa API è stata originariamente progettata per l'uso interno nel runtime. Sebbene sia ora supportato per l'uso di terze parti, è consigliabile usare ICorDebug le API e ICorProfiler quando possibile.

Sintassi

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 Descrizione
segmentAddr Indirizzo del segmento dell'heap.
allocated Indirizzo della parte allocata del segmento.
committed Indirizzo con cui viene eseguito il commit della memoria per il segmento.
reserved Indirizzo fino a cui la memoria è riservata per il segmento.
used Indirizzo fino a cui viene utilizzata la memoria per il segmento.
mem Indirizzo iniziale della memoria del segmento.
next Indirizzo del segmento successivo. Passare questo valore a Request se non è null per recuperare il segmento successivo.
gc_heap Indirizzo dell'heap GC. Questo membro viene compilato solo in modalità server; in caso contrario, è NULL.
highAllocMark Contrassegno di allocazione elevato. Se questo segmento è il segmento temporaneo, questo valore include la generazione temporanea.
flags Flag di segmento dell'heap.
background_allocated Indirizzo allocato GC in background per il segmento.
Request Popola la struttura chiamando ISOSDacInterface::GetHeapSegmentData e calcola highAllocMark.

Remarks

Questa struttura si trova all'interno del runtime e non viene esposta tramite intestazioni o file di libreria. Per usarla, definire la struttura come specificato in precedenza.

Requisiti

Piattaforme: Vedere Requisiti di sistema.
Intestazione: Nessuno
Biblioteca: Nessuno
versioni di .NET Framework: disponibile dalla versione 4.7

Vedere anche