DacpGcHeapDetails-Struktur

Definiert einen Transportpuffer für detaillierte Heapinformationen zur 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

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

Elemente

Mitglied Beschreibung
heapAddr Die Adresse des GC-Heaps. Dieses Element wird nur im Servermodus ausgefüllt. andernfalls ist NULLes .
alloc_allocated Der aktuelle Zuordnungspunkt für den Heap.
mark_array Die Adresse des Markierungsarrays.
current_c_gc_state Die Adresse des aktuellen Komprimierungs-GC-Zustands.
next_sweep_obj Die Adresse des nächsten zu aufräumenden Objekts.
saved_sweep_ephemeral_seg Die Adresse des gespeicherten kurzlebigen Segments für einen Aufräumen.
saved_sweep_ephemeral_start Die Adresse des gespeicherten kurzlebigen Aufräumens.
background_saved_lowest_address Die niedrigste Adresse, die für den Hintergrund-GC-Zustand gespeichert wurde.
background_saved_highest_address Die höchste Adresse, die für den Hintergrund-GC-Zustand gespeichert wurde.
generation_table Ein Array von DacpGenerationData-Strukturen mit Daten für jede GC-Generation.
ephemeral_heap_segment Die Adresse des kurzlebigen Heapsegments.
finalization_fill_pointers Ein Array von Endisierungsfüllzeigern.
lowest_address Die niedrigste Adresse im Heap.
highest_address Die höchste Adresse im Heap.
card_table Die Adresse der GC-Kartentabelle.
Request Füllt die Struktur auf, indem arbeitsstations-GC oder ISOSDacInterface::GetGCHeapDetails server-GC aufgerufen ISOSDacInterface::GetGCHeapStaticData wird.

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