Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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