Freigeben über


DkmStackWalkContext Klasse

Definition

DkmStackWalkContext ermöglicht es den verschiedenen Komponenten, die Aufruflisten durchlaufen, filtern oder untersuchen, private Daten zu speichern, die dieser Aufrufliste zugeordnet sind.

public ref class DkmStackWalkContext : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("33ebb282-734b-c2f3-66cd-c42eb8a3d490")]
public class DkmStackWalkContext : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("33ebb282-734b-c2f3-66cd-c42eb8a3d490")>]
type DkmStackWalkContext = class
    inherit DkmDataContainer
    interface IDisposable
Public Class DkmStackWalkContext
Inherits DkmDataContainer
Implements IDisposable
Vererbung
DkmStackWalkContext
Vererbung
DkmStackWalkContext
Attribute
Implementiert

Eigenschaften

Flags

Flags zum Steuern von Frames, die während eines Stapellaufs zurückgegeben werden.

Diese API wurde in Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) eingeführt.

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)
Process

DkmProcess stellt einen Zielprozess dar, der debuggt wird. Der Debugger debuggt Prozesse, sodass dies die grundlegende Debugeinheit ist. Ein DkmProcess kann einen Systemprozess oder einen virtuellen Prozess wie Minidumps darstellen.

Thread

DkmThread stellt einen Thread dar, der im Zielprozess ausgeführt wird.

ThreadContext

[Optional] Der anfängliche Win32-KONTEXT, der beim Ausführen des Stapellaufs verwendet werden soll. Dieser Wert ist normalerweise "NULL", kann jedoch festgelegt werden, um eine andere Aufrufliste (z. B. .cxr) anzuzeigen.

TopStackPointer

Stapelzeiger für den oberen Stapelrahmen.

Diese API wurde in Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6) eingeführt.

UniqueId

Guid, die diesen DkmStackWalkContext eindeutig identifiziert.

Methoden

Close()

Schließt ein DkmStackWalkContext-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.

DkmStackWalkContext-Objekte werden automatisch geschlossen, wenn das zugeordnete DkmThread-Objekt geschlossen wird.

Create(DkmThread, ReadOnlyCollection<Byte>, DkmDataItem)

Create ein neues DkmStackWalkContext-Objekt instance.

Create(DkmThread, ReadOnlyCollection<Byte>, UInt64, DkmDataItem)

Create ein neues DkmStackWalkContext-Objekt instance.

Diese API wurde in Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6) eingeführt.

Create(DkmThread, ReadOnlyCollection<Byte>, UInt64, DkmStackWalkContextFlags, DkmDataItem)

Create ein neues DkmStackWalkContext-Objekt instance.

Diese API wurde in Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) eingeführt.

FindSymbolStackWalkContext(Guid)

Suchen Sie in diesem DkmStackWalkContext-Element nach einem DkmSymbolStackStackWalkContext-Element. Wenn kein Element mit dem angegebenen Eingabeschlüssel vorhanden ist, schlägt FindSymbolStackWalkContext fehl.

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)
HeuristicWalkFrames(DkmFrameRegisters, UInt32, UInt64, DkmFrameRegisters, Boolean)

Versuchen Sie, einen Bereich des Stapels mithilfe eines heuristischen Stapellaufalgorithmus zu durchlaufen. Dies wird in x86 verwendet, wenn keine Symbole verfügbar sind. Es ist nicht auf anderen Plattformen implementiert, da PDATA das Durchlaufen aller Frames ermöglicht.

HeuristicWalkFrames(DkmWorkList, DkmFrameRegisters, UInt32, UInt64, DkmCompletionRoutine<DkmHeuristicWalkFramesAsyncResult>)

Versuchen Sie, einen Bereich des Stapels mithilfe eines heuristischen Stapellaufalgorithmus zu durchlaufen. Dies wird in x86 verwendet, wenn keine Symbole verfügbar sind. Es ist nicht auf anderen Plattformen implementiert, da PDATA das Durchlaufen aller Frames ermöglicht.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

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)
RuntimeWalkNextFrames(DkmWorkList, UInt32, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAsyncResult>)

Versuchen Sie, den Stapel ohne Verwendung von Symbolen zu durchlaufen. Dadurch werden verschiedene Komponenten aufgerufen, die wissen, wie Teile des Stapels durchlaufen werden (z. B. CLR-Frames werden vom CLR-Debugmonitor durchlaufen). Ein "ungelöster" Frame wird für Teile des Stapels verlassen, die ohne in der Symboldatei gespeicherte Informationen nicht durchlaufen werden können. Diese "nicht aufgelösten" Frames haben keine InstructionAddress oder Description.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

RuntimeWalkNextFrames(UInt32, Boolean)

Versuchen Sie, den Stapel ohne Verwendung von Symbolen zu durchlaufen. Dadurch werden verschiedene Komponenten aufgerufen, die wissen, wie Teile des Stapels durchlaufen werden (z. B. CLR-Frames werden vom CLR-Debugmonitor durchlaufen). Ein "ungelöster" Frame wird für Teile des Stapels verlassen, die ohne in der Symboldatei gespeicherte Informationen nicht durchlaufen werden können. Diese "nicht aufgelösten" Frames haben keine InstructionAddress oder Description.

RuntimeWalkNextFramesAndCheckCache(DkmWorkList, UInt32, UInt32, DkmStackHash, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAndCheckCacheAsyncResult>)

Veraltet. Verwenden Sie diese Methode nicht, sie gibt veraltete Hashwerte zurück. Verwenden Sie stattdessen IDkmMergedMonitorStackWalk164::RuntimeWalkNextFramesAndCheckCache164. Version von RuntimeWalkNextFrames(), die auch überprüft, ob eine zwischengespeicherte Kopie der Aufrufliste noch gültig ist.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

RuntimeWalkNextFramesAndCheckCache(UInt32, UInt32, DkmStackHash, Boolean, DkmStackHash, DkmStackWalkContext, Boolean)

Veraltet. Verwenden Sie diese Methode nicht, sie gibt veraltete Hashwerte zurück. Verwenden Sie stattdessen IDkmMergedMonitorStackWalk164::RuntimeWalkNextFramesAndCheckCache164. Version von RuntimeWalkNextFrames(), die auch überprüft, ob eine zwischengespeicherte Kopie der Aufrufliste noch gültig ist.

RuntimeWalkNextFramesAndCheckCache164(DkmWorkList, UInt32, UInt32, DkmStackHash164, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAndCheckCache164AsyncResult>)

Version von RuntimeWalkNextFrames(), die auch überprüft, ob eine zwischengespeicherte Kopie der Aufrufliste noch gültig ist.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

Diese API wurde in Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4) eingeführt.

RuntimeWalkNextFramesAndCheckCache164(UInt32, UInt32, DkmStackHash164, Boolean, DkmStackHash164, DkmStackWalkContext, Boolean)

Version von RuntimeWalkNextFrames(), die auch überprüft, ob eine zwischengespeicherte Kopie der Aufrufliste noch gültig ist.

Diese API wurde in Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4) eingeführt.

SetDataItem<T>(DkmDataCreationDisposition, T)

Platzieren Sie ein neues Element im Datencontainer.

(Geerbt von DkmDataContainer)

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

DkmStackWalkContext ermöglicht es den verschiedenen Komponenten, die Aufruflisten durchlaufen, filtern oder untersuchen, private Daten zu speichern, die dieser Aufrufliste zugeordnet sind.

Gilt für: