Udostępnij przez


DkmStackWalkContext Klasa

Definicja

Obiekt DkmStackWalkContext umożliwia przechowywanie prywatnych danych skojarzonych z tym stosem wywołań przez różne składniki, które przechodzą, filtrują lub badają stosy wywołań.

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
Dziedziczenie
DkmStackWalkContext
Dziedziczenie
DkmStackWalkContext
Atrybuty
Implementuje

Właściwości

Flags

Flagi sterujące ramkami zwróconymi podczas stosu.

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3).

IsUnloaded

Zwraca wartość true, jeśli dla tego obiektu zostało podniesione zdarzenie "unloaded" (na przykład: DkmThread::Unload jest wywoływane) lub jeśli obiekt został zamknięty. Należy pamiętać, że podczas sprawdzania tego stanu należy zachować ostrożność, ponieważ bez synchronizacji zwrócony stan może nie być już dokładny po odczytaniu instrukcji.

(Odziedziczone po DkmDataContainer)
Process

DkmProcess reprezentuje proces docelowy, który jest debugowany. Debuger debuguje procesy, więc jest to podstawowa jednostka debugowania. Proces DkmProcess może reprezentować proces systemowy lub proces wirtualny, taki jak minidumps.

Thread

Element DkmThread reprezentuje wątek uruchomiony w procesie docelowym.

ThreadContext

[Opcjonalnie] Początkowy kontekst Win32 do użycia podczas wykonywania przewodnika stosu. Ta wartość jest zwykle równa null, ale można ustawić w celu wyświetlenia innego stosu wywołań (np. cxr).

TopStackPointer

Wskaźnik stosu dla ramki stosu górnego.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6).

UniqueId

Identyfikator GUID, który jednoznacznie identyfikuje ten DkmStackWalkContext.

Metody

Close()

Zamyka wystąpienie obiektu DkmStackWalkContext. Spowoduje to zwolnienie wszystkich zasobów skojarzonych z tym obiektem we wszystkich składnikach. Obejmuje to zasoby w granicach komputera lub zarządzanego/natywnego marshalingu.

Obiekty DkmStackWalkContext są automatycznie zamykane po zamknięciu skojarzonego obiektu DkmThread.

Create(DkmThread, ReadOnlyCollection<Byte>, DkmDataItem)

Twórca nowe wystąpienie obiektu DkmStackWalkContext.

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

Twórca nowe wystąpienie obiektu DkmStackWalkContext.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6).

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

Twórca nowe wystąpienie obiektu DkmStackWalkContext.

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3).

FindSymbolStackWalkContext(Guid)

Znajdź element DkmSymbolStackWalkContext w tym obiekcie DkmStackWalkContext. Jeśli nie ma żadnego elementu z danym kluczem wejściowym, funkcja FindSymbolStackWalkContext zakończy się niepowodzeniem.

GetDataItem<T>()

Pobiera wystąpienie elementu "T", które zostało dodane do tego wystąpienia kontenera. Jeśli ten kontener nie zawiera wartości "T", ta funkcja zwróci wartość null.

(Odziedziczone po DkmDataContainer)
HeuristicWalkFrames(DkmFrameRegisters, UInt32, UInt64, DkmFrameRegisters, Boolean)

Spróbuj przejść przez region stosu przy użyciu algorytmu stosu heurystycznego. Jest to używane w wersji x86, gdy symbole nie są dostępne. Nie jest on implementowany na innych platformach, ponieważ funkcja PDATA umożliwia przechodzenie ze wszystkich ramek.

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

Spróbuj przejść przez region stosu przy użyciu algorytmu stosu heurystycznego. Jest to używane w wersji x86, gdy symbole nie są dostępne. Nie jest on implementowany na innych platformach, ponieważ funkcja PDATA umożliwia przechodzenie ze wszystkich ramek.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę uzupełniania.

RemoveDataItem<T>()

Usuń wystąpienie elementu "T" z tego kontenera. Zwykle wywołanie tej metody jest niepotrzebne, ponieważ kontener danych zostanie automatycznie opróżniony po zamknięciu obiektu.

(Odziedziczone po DkmDataContainer)
RuntimeWalkNextFrames(DkmWorkList, UInt32, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAsyncResult>)

Spróbuj przejść stos bez użycia symboli. Spowoduje to wywołanie różnych składników, które wiedzą, jak przechodzić części stosu (np. ramki CLR będą śledzone przez monitor debugowania CLR). Ramka "nierozwiązana" pozostanie dla części stosu, których nie można przechodzić bez informacji przechowywanych w pliku symboli. Te "nierozwiązane" ramki nie mają instrukcji ani opisu.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę uzupełniania.

RuntimeWalkNextFrames(UInt32, Boolean)

Spróbuj przejść stos bez użycia symboli. Spowoduje to wywołanie różnych składników, które wiedzą, jak przechodzić części stosu (np. ramki CLR będą śledzone przez monitor debugowania CLR). Ramka "nierozwiązana" pozostanie dla części stosu, których nie można przechodzić bez informacji przechowywanych w pliku symboli. Te "nierozwiązane" ramki nie mają instrukcji ani opisu.

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

Przestarzałe. Nie należy używać tej metody. Zwraca ona nieaktualne wartości skrótu; Zamiast tego użyj elementu IDkmMergedMonitorStackWalk164::RuntimeWalkNextFramesAndCheckCache164. Wersja runtimeWalkNextFrames(), która sprawdza również, czy buforowana kopia stosu wywołań jest nadal prawidłowa.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę uzupełniania.

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

Przestarzałe. Nie należy używać tej metody. Zwraca ona nieaktualne wartości skrótu; Zamiast tego użyj elementu IDkmMergedMonitorStackWalk164::RuntimeWalkNextFramesAndCheckCache164. Wersja runtimeWalkNextFrames(), która sprawdza również, czy buforowana kopia stosu wywołań jest nadal prawidłowa.

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

Wersja runtimeWalkNextFrames(), która sprawdza również, czy buforowana kopia stosu wywołań jest nadal prawidłowa.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę uzupełniania.

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4).

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

Wersja runtimeWalkNextFrames(), która sprawdza również, czy buforowana kopia stosu wywołań jest nadal prawidłowa.

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4).

SetDataItem<T>(DkmDataCreationDisposition, T)

Umieść nowy element w kontenerze danych.

(Odziedziczone po DkmDataContainer)

Jawne implementacje interfejsu

IDisposable.Dispose()

Obiekt DkmStackWalkContext umożliwia przechowywanie prywatnych danych skojarzonych z tym stosem wywołań przez różne składniki, które przechodzą, filtrują lub badają stosy wywołań.

Dotyczy