DkmManagedHeapSampler Klasse

Definition

DkmManagedHeapSampler stellt einen Sampler für Objekte im verwalteten Heap dar.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

public ref class DkmManagedHeapSampler : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("14537042-a674-0f63-20ba-a9fab411d46a")]
public class DkmManagedHeapSampler : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("14537042-a674-0f63-20ba-a9fab411d46a")>]
type DkmManagedHeapSampler = class
    inherit DkmDataContainer
    interface IDisposable
Public Class DkmManagedHeapSampler
Inherits DkmDataContainer
Implements IDisposable
Vererbung
DkmManagedHeapSampler
Vererbung
DkmManagedHeapSampler
Attribute
Implementiert

Eigenschaften

IsUnloaded

Gibt true zurück, wenn ein "unloaded"-Ereignis für dieses Objekt ausgelöst wurde (Beispiel: DkmThread::Unload wird aufgerufen) oder wenn das Objekt geschlossen wurde. Beachten Sie, dass bei der Überprüfung dieses status Vorsicht erforderlich ist, da die zurückgegebene status ohne Synchronisierung die Anweisung nach dem Lesen möglicherweise nicht mehr korrekt ist.

(Geerbt von DkmDataContainer)
RuntimeInstance

Die DkmRuntimeInstance-Klasse stellt eine Ausführungsumgebung dar, die in einen DkmProcess geladen wird und den zu debuggenden Code enthält.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

UniqueId

Guid, die diesen DkmManagedHeapSampler eindeutig identifiziert.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

WorkerConnection

[Optional] Gibt eine Verbindung mit einem Arbeitsprozess an, in dem die Vorgänge des Heap Samplers verarbeitet werden.

Diese API wurde in Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview) eingeführt.

Methoden

AnalyzeDuplicateStrings()

Analysieren Sie die auf dem Heap gefundenen doppelten Zeichenfolgen, ohne sie zurückzugeben. Sollte nach dem Durchlaufen der Objekte und nie nach dem Durchlaufen der Wurzeln aufgerufen werden, da der Prozess möglicherweise fortgesetzt wurde.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) eingeführt.

AnalyzeEventHandlerLeaks(String[])

Analysieren Sie die Ereignishandlerlecks, die auf dem Heap gefunden wurden, ohne sie zurückzugeben. Sollte nach dem Durchlaufen der Objekte und nie nach dem Durchlaufen der Wurzeln aufgerufen werden, da der Prozess möglicherweise fortgesetzt wurde.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) eingeführt.

AnalyzeSparseArrays()

Analysieren Sie die Sparsearrays.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) eingeführt.

Close()

Schließt ein DkmManagedHeapSampler-Objekt instance. Dadurch werden alle Ressourcen freigegeben, die diesem Objekt für alle Komponenten zugeordnet sind. Dies schließt Ressourcen über Computer- oder verwaltete/native Marshallinggrenzen hinweg ein.

DkmManagedHeapSampler-Objekte werden automatisch geschlossen, wenn das zugeordnete DkmRuntimeInstance-Objekt geschlossen wird.

Diese Methode kann nur von der Komponente aufgerufen werden, die das Objekt erstellt hat.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

Create(DkmRuntimeInstance, DkmDataItem)

Create ein neues DkmManagedHeapSampler-Objekt instance. Der Aufrufer ist dafür verantwortlich, das erstellte Objekt zu schließen, nachdem er fertig ist.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

Create(DkmRuntimeInstance, DkmWorkerProcessConnection, DkmDataItem)

Create ein neues DkmManagedHeapSampler-Objekt instance. Der Aufrufer ist dafür verantwortlich, das erstellte Objekt zu schließen, nachdem er fertig ist.

Diese API wurde in Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview) eingeführt.

DeferRootsAnalysis()

Geben Sie dem Heap-Sampler an, dass die Stammanalyse verzögert und ergebnisse ohne identifizierte Liveobjekte zurückgegeben werden sollen.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4) eingeführt.

GetAddressesForDuplicatedStringValue(String)

Rufen Sie alle Adressen ab, die für den angegebenen doppelten Zeichenfolgenwert gefunden wurden. Gibt nur gültige Ergebnisse für Zeichenfolgen zurück, die über GetNextDuplicateStrings abgerufen wurden.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) eingeführt.

GetDataItem<T>()

Ruft den instance von "T" ab, der diesem Container instance hinzugefügt wurde. Wenn dieser Container kein "T" enthält, gibt diese Funktion NULL zurück.

(Geerbt von DkmDataContainer)
GetNextDuplicateStrings(UInt32)

Versucht, den Wert des nächsten angeforderten Teils der doppelten Zeichenfolgen aus dem verwalteten Heap abzurufen. Sollte nicht aufgerufen werden, bevor der Heap-Walk abgeschlossen ist.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) eingeführt.

GetNextEventHandlerLeaks(UInt32)

Versucht, den Wert des nächsten angeforderten Teils der Instanzen des Ereignishandlers aus dem verwalteten Heap abzurufen. Sollte nicht aufgerufen werden, bevor der Heap-Walk abgeschlossen ist.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) eingeführt.

GetNextEventHandlerLeaksJMC(UInt32)

Versucht, den Wert des nächsten angeforderten Teils der Instanzen des Ereignishandlers aus dem verwalteten Heap abzurufen, wobei ausgeschlossene Typen herausgefiltert sind. Sollte nicht aufgerufen werden, bevor der Heap-Walk abgeschlossen ist.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) eingeführt.

GetNextSparseArrayDetails(DkmManagedTypeId, UInt32)

Versucht, den Wert des nächsten angeforderten Teils des Sparsearrays instance -Objekten abzurufen.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) eingeführt.

GetNextSparseArraySummaries(UInt32)

Versucht, den Wert des nächsten angeforderten Teils der Sammelobjekte des Sparsearrays abzurufen.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) eingeführt.

GetRoots()

Gibt Stammdaten aus dem Stichprobenheap zurück.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

GetSampledHeapData(UInt32)

Gibt den nächsten angeforderten Teil der serialisierten Objektdiagrammdaten zurück.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

GetSampledHeapDataWithoutRoots(UInt32)

Gibt den nächsten angeforderten Teil der serialisierten Objektdiagrammdaten zurück, ohne Stamminformationen zu enthalten.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4) eingeführt.

GetSampledHeapTypeStats()

Gibt die Heaptypstatistiken zurück.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

GetSampledHeapTypeStats176(Boolean)

Gibt die Heaptypstatistiken zurück, wobei optional tote Objekte in die Anzahl eingeschlossen werden.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) eingeführt.

GetSegments()

Ruft die Liste der Segmente im Heap ab.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) eingeführt.

GetTotalBytesWastedByEventHandlerLeaks()

Gibt die Gesamtmenge der Bytes zurück, die von Ereignishandlern auf dem verwalteten Heap kompromittiert wurden. Diese Berechnung ist vom BytesWasted-Wert der einzelnen Leak-Info-Strukturen getrennt. Dies liegt daran, dass sich die Teilstrukturen von Lecks überlappen können, was zu einer doppelten Zählung beibehaltener Objekte führt.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) eingeführt.

GetTotalBytesWastedByEventHandlerLeaksJMC()

Gibt die Gesamtmenge der Bytes zurück, die von Ereignishandlern auf dem verwalteten Heap mit herausgefilterten ausgeschlossenen Typen kompromittiert wurden. Diese Berechnung ist vom BytesWasted-Wert der einzelnen Leak-Info-Strukturen getrennt. Dies liegt daran, dass sich die Teilstrukturen von Lecks überlappen können, was zu einer doppelten Zählung beibehaltener Objekte führt.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) eingeführt.

InitializeHeapObjectWalk(UInt32, Boolean)

Initialisiert den Heap-Sampler.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

NextObjects(UInt32)

Durchläuft die angegebene Anzahl von Objekten auf dem Heap.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

NextReferences(UInt32)

Durchläuft die angegebene Anzahl von Verweisen auf den Heap.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

NextRoots(UInt32)

Durchläuft die angegebene Anzahl von GC-Wurzeln auf dem Heap.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 12 RTM (DkmApiVersion.VS12RTM) eingeführt.

RemoveDataItem<T>()

Entfernen Sie die instance von "T" aus diesem Container. Es ist in der Regel nicht erforderlich, diese Methode aufzurufen, da ein Datencontainer automatisch geleert wird, wenn das Objekt geschlossen wird.

(Geerbt von DkmDataContainer)
SetDataItem<T>(DkmDataCreationDisposition, T)

Platzieren Sie ein neues Element im Datencontainer.

(Geerbt von DkmDataContainer)

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Muss hinzugefügt werden.

Gilt für: