DacpGcHeapDetails, structure

Définit une mémoire tampon de transport pour obtenir des informations détaillées sur le 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

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

Members

Membre Description
heapAddr Adresse du tas GC. Ce membre est renseigné uniquement en mode serveur ; sinon, c’est NULL.
alloc_allocated Pointeur d’allocation actuel pour le tas.
mark_array Adresse du tableau de marques.
current_c_gc_state Adresse de l’état GC de compactage actuel.
next_sweep_obj Adresse de l’objet suivant à balayer.
saved_sweep_ephemeral_seg Adresse du segment éphémère enregistré pour un balayage.
saved_sweep_ephemeral_start Adresse du démarrage du balayage éphémère enregistré.
background_saved_lowest_address Adresse la plus basse enregistrée pour l’état GC en arrière-plan.
background_saved_highest_address Adresse la plus élevée enregistrée pour l’état GC en arrière-plan.
generation_table Tableau de structures DacpGenerationData avec des données pour chaque génération gc.
ephemeral_heap_segment Adresse du segment de tas éphémère.
finalization_fill_pointers Tableau de pointeurs de remplissage de finalisation.
lowest_address Adresse la plus basse dans le tas.
highest_address Adresse la plus élevée dans le tas.
card_table Adresse de la table de cartes GC.
Request Remplit la structure en appelant ISOSDacInterface::GetGCHeapStaticData le gc de station de travail ou ISOSDacInterface::GetGCHeapDetails pour le gc du serveur.

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