DacpHeapSegmentData-Struktur

Definiert einen Transportpuffer für Heapsegmentinformationen für die Garbage Collection.

Note

Diese API wurde ursprünglich für die interne Verwendung in der Runtime entwickelt. Obwohl sie jetzt für die Verwendung durch Dritte unterstützt wird, wird empfohlen, nach Möglichkeit mit den APIs ICorDebug und ICorProfiler zu arbeiten.

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;
    }
};

Elemente

Mitglied Beschreibung
segmentAddr Die Adresse des Heapsegments.
allocated Die Adresse des zugeordneten Teils des Segments.
committed Die Adresse, für die der Speicher für das Segment zugesichert wird.
reserved Die Adresse, auf die der Speicher für das Segment reserviert ist.
used Die Adresse, an die der Speicher für das Segment verwendet wird.
mem Die Startadresse des Segmentspeichers.
next Die Adresse des nächsten Abschnitts. Übergeben Sie diesen Wert an Request , wenn es nicht null ist, um das nächste Segment abzurufen.
gc_heap Die Adresse des GC-Heaps. Dieses Element wird nur im Servermodus ausgefüllt. andernfalls ist NULLes .
highAllocMark Die hohe Zuteilungsmarke. Wenn dieses Segment das kurzlebige Segment ist, enthält dieser Wert die kurzlebige Generation.
flags Die Heapsegmentkennzeichnungen.
background_allocated Die im Hintergrund zugeordnete GC-Adresse für das Segment.
Request Füllt die Struktur durch Aufrufen ISOSDacInterface::GetHeapSegmentData und Berechnen auf highAllocMark.

Remarks

Diese Struktur befindet sich innerhalb der Laufzeit und wird nicht über Kopfzeilen oder Bibliotheksdateien verfügbar gemacht. Um sie zu verwenden, definieren Sie die Struktur wie oben angegeben.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.
Kopfball: Nichts
Bibliothek: Nichts
.NET Framework-Versionen: Seit 4.7 verfügbar

Siehe auch