DacpHeapSegmentData, structure

Définit une mémoire tampon de transport pour les informations de segment de tas de garbage collection.

Note

Cette API a été conçue à l’origine pour une utilisation interne dans le runtime. Bien qu’elle soit désormais prise en charge pour une utilisation tierce, nous vous recommandons, autant que possible, d’utiliser les API ICorDebug et ICorProfiler.

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

Members

Membre Description
segmentAddr Adresse du segment de tas.
allocated Adresse de la partie allouée du segment.
committed Adresse jusqu’à laquelle la mémoire est validée pour le segment.
reserved Adresse jusqu’à laquelle la mémoire est réservée pour le segment.
used Adresse jusqu’à laquelle la mémoire est utilisée pour le segment.
mem Adresse de début de la mémoire du segment.
next Adresse du segment suivant. Transmettez cette valeur s’il Request n’est pas null pour récupérer le segment suivant.
gc_heap Adresse du tas GC. Ce membre est renseigné uniquement en mode serveur ; sinon, c’est NULL.
highAllocMark Marque d’allocation élevée. Si ce segment est le segment éphémère, cette valeur inclut la génération éphémère.
flags Indicateurs de segment de tas.
background_allocated Adresse gc allouée en arrière-plan pour le segment.
Request Remplit la structure en appelant ISOSDacInterface::GetHeapSegmentData et en calculant highAllocMark.

Remarks

Cette structure se trouve à l’intérieur du runtime et n’est pas exposée par le biais d’en-têtes ou de fichiers de bibliothèque. Pour l’utiliser, définissez la structure comme indiqué ci-dessus.

Exigences

Plateformes : Consultez Configuration requise.
En-tête: Aucun
Bibliothèque: Aucun
versions de .NET Framework : disponible depuis la version 4.7

Voir aussi