Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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