Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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