DkmStackFrame Klasa

Definicja

Element DkmStackFrame reprezentuje ramkę na stosie wywołań po filtrowaniu i translacji.

public ref class DkmStackFrame : Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmStackFrame : Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
class DkmStackFrame : Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame
[System.Runtime.InteropServices.Guid("9e32fe11-196e-a0ec-b83c-0792427e91a2")]
public class DkmStackFrame : Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame
[<System.Runtime.InteropServices.Guid("9e32fe11-196e-a0ec-b83c-0792427e91a2")>]
type DkmStackFrame = class
    inherit DkmStackWalkFrame
Public Class DkmStackFrame
Inherits DkmStackWalkFrame
Dziedziczenie
DkmStackFrame
Atrybuty

Właściwości

AnnotatedModule

[Opcjonalnie] Jeśli mamy ramkę z adnotacjami, określa opcjonalne wystąpienie modułu do skojarzenia z tą ramką. Jeśli istnieje, użytkownik będzie mógł załadować pliki binarne lub symbole dla tego modułu, klikając prawym przyciskiem myszy tę ramkę w oknie stosu wywołań. Jest to wartość NULL dla ramek bez adnotacji.

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

(Odziedziczone po DkmStackWalkFrame)
Annotations

[Opcjonalnie] Kolekcja adnotacji ramki stosu tylko do odczytu. Są one definiowane przez odwijacza i są specyficzne dla tego odwijacza. Przykładowe użycie polega na tym, jak dane wbudowanej ramki są przekazywane z filtru stosu wbudowanego do elementu formatującego.

(Odziedziczone po DkmStackWalkFrame)
AsyncContext

[Opcjonalnie] Opcjonalny kontekst chodzenia asynchronicznych stosów powrotnych i stosów tworzenia zadań.

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

(Odziedziczone po DkmStackWalkFrame)
BasicSymbolInfo

[Opcjonalnie] Zawiera podstawowe informacje o obiekcie DkmInstructionSymbol odpowiadającym instrukcji ramkiAddress. W przypadku ramek natywnych zostanie to obliczone przez dostawcę StackProvider przed przekazaniem ramki do filtru stosu.

Zawsze będzie to mieć wartość null dla elementu DkmStackFrame.

Ten interfejs API został wprowadzony w programie Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

(Odziedziczone po DkmStackWalkFrame)
CompilerId

LanguageId/VendorId dla kompilatora, który wyprodukował kod dla tej ramki stosu. Jeśli jest to nieznane (np. brak symboli załadowanych dla tego modułu), obie wartości będą mieć wartość Guid.Empty. W przeciwnym razie obie wartości powinny być inne niż zero.

Connection

Reprezentuje to połączenie między monitorem a środowiskiem IDE. Może to być połączenie lokalne, jeśli monitor jest uruchomiony w tym samym procesie co środowisko IDE lub może być połączeniem zdalnym. W procesie monitorowania istnieje tylko jedno połączenie.

(Odziedziczone po DkmStackWalkFrame)
Data

[Opcjonalnie] Opcjonalny obiekt do dołączenia do elementu DkmStackWalkFrame, co umożliwia składnikom kojarzenie dodatkowych danych prywatnych z ramką.

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

(Odziedziczone po DkmStackWalkFrame)
Description

[Opcjonalnie] Opis ramki, która będzie wyświetlana w oknie stosu wywołań. Należy to podać dla ramek z adnotacjami.

(Odziedziczone po DkmStackWalkFrame)
Flags

Flaguje właściwości elementu DkmStackWalkFrame.

(Odziedziczone po DkmStackWalkFrame)
FrameBase

Podstawowy wskaźnik stosu ramki. Jest to używane przez SDM do sortowania ramki i jest używane przez połączenie stosu do oceny postępu chodzenia, więc ta wartość jest wymagana nawet w przypadku ramek z adnotacjami. Ta wartość powinna być nieprawidłowa tylko w przypadku uszkodzenia stosu debuggee.

(Odziedziczone po DkmStackWalkFrame)
FrameName

Nazwa ramki stosu. DkmStackFrame.FormatOptions określa format nazwy funkcji.

FrameSize

Liczba bajtów stosu używanego przez tę ramkę. Ta wartość będzie równa zero dla ramek z adnotacjami lub jeśli wartość jest nieznana.

(Odziedziczone po DkmStackWalkFrame)
InstructionAddress

[Opcjonalnie] Instrukcja tej ramki. Można to pominąć w przypadku ramek z adnotacjami.

(Odziedziczone po DkmStackWalkFrame)
IsStale

Określa, czy ta ramka stosu jest nieaktualna, czy nie po dokonaniu edycji i kontynuowania.

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

ModuleInstance

[Opcjonalnie] Moduł zawierający ten adres. Adresy bez modułu nie mogą mieć symboli (nawet w przypadku adresów niestandardowych). Adresy CLR zawsze będą miały moduł. Adresy natywne nie będą miały modułu, jeśli procesor CPU przeskoczył do nieprawidłowego adresu (np. NULL) lub jeśli procesor wykonuje kod emitowany dynamicznie.

(Odziedziczone po DkmStackWalkFrame)
Options

Kolekcja ustawień, które mają wpływ na sposób formatowania elementu DkmStackFrame przez dostawcę stosu.

Priority

Priorytet ramki stosu. Jest to zwykle używane w przypadku ramek z adnotacjami, które wykryły problem.

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

(Odziedziczone po DkmStackWalkFrame)
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.

(Odziedziczone po DkmStackWalkFrame)
Registers

[Opcjonalnie] Rejestry klatki spacerowej. Powinny one być podane dla nienotowanych ramek.

(Odziedziczone po DkmStackWalkFrame)
ReturnType

[Opcjonalnie] Nazwa zwracanego typu ramki stosu. Jest to możliwe tylko wtedy, gdy ustawiono pole DkmFrameNameFormatOptions.ReturnTypeField.

RuntimeInstance

[Opcjonalnie] Klasa DkmRuntimeInstance reprezentuje środowisko wykonywania, które jest ładowane do obiektu DkmProcess i które zawiera kod do debugowania.

(Odziedziczone po DkmStackWalkFrame)
SourcePosition

[Opcjonalnie] Lokalizacja kodu źródłowego dla tej ramki stosu. Jest to dostępne tylko wtedy, gdy ustawiono pole DkmFrameNameFormatOptions.DocumentPositionField.

Thread

Wątek, na który jest włączona ta ramka stosu.

(Odziedziczone po DkmStackWalkFrame)
UniqueId

Unikatowy identyfikator elementu DkmStackWalkFrame. W scenariuszach zdalnego debugowania może to być GUID_NULL/Guid.Empty, jeśli ramka została s marshalled ze starszego środowiska IDE/debugera zdalnego.

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

(Odziedziczone po DkmStackWalkFrame)

Metody

CanSetNextStatement(DkmInstructionAddress)

CanSetNextStatement określa, czy można przenieść adres IP ramki stosu. Ramka stosu jest zawsze ramką stosu liści na określonym wątku. Ten interfejs API można zaimplementować tylko w procesie aparatu. Parametr Wynik powinien być S_OK lub wartość błędu HRESULT, którą interfejs użytkownika może mapować na komunikat o błędzie.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

(Odziedziczone po DkmStackWalkFrame)
ComputeUserStatus(DkmInspectionSession, Boolean)

Określa, czy ramka jest kodem użytkownika.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

(Odziedziczone po DkmStackWalkFrame)
Create(DkmStackWalkFrame, DkmFrameFormatOptions, DkmCompilerId, String, String, DkmSourcePosition)

Twórca nowe wystąpienie obiektu DkmStackFrame.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Create(DkmStackWalkFrame, DkmFrameFormatOptions, DkmCompilerId, String, String, DkmSourcePosition, Boolean)

Twórca nowe wystąpienie obiektu DkmStackFrame.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

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

ExtractFromAD7Object(IDebugStackFrame2)

Uzyskuje element DkmStackFrame z obiektu ramki stosu AD7. Ten interfejs API jest używany przez pakiety programu Visual Studio lub dodatki, które chcą uzyskać dostęp do interfejsu API Concord w celu uzyskania bardziej szczegółowych informacji na temat debugowanego procesu. Ten interfejs API będzie działać poprawnie tylko z głównego wątku programu Visual Studio.

ExtractFromDTEObject(StackFrame)

Uzyskuje element DkmStackFrame z obiektu ramki stosu DTE (automatyzacja debugera). Ten interfejs API jest używany przez pakiety programu Visual Studio lub dodatki, które chcą uzyskać dostęp do interfejsu API Concord w celu uzyskania bardziej szczegółowych informacji na temat debugowanego procesu. Obiekt automatyzacji jest często uzyskiwany z zdarzenia automatyzacji "OnContextChanged" lub z właściwości Debugger.CurrentStackFrame. Ten interfejs API będzie działać poprawnie tylko z głównego wątku programu Visual Studio.

Format(DkmInspectionSession, DkmFrameFormatOptions)

Sformatuj element DkmStackWalkFrame w ramce DkmStackFrame. Formatowanie ramki jest jednym krokiem tego, co dostawca stosu robi podczas getNextFrames. Ta metoda może służyć do formatowania ramki w inny sposób niż pierwotnie wykonywane przez dostawcę stosu w getNextFrames.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

(Odziedziczone po DkmStackWalkFrame)
GetClrGenericParameters()

Pobiera parametry ogólne dla bieżącej ramki stosu jako listę kwalifikowanych nazw zestawów.

Ten interfejs API został wprowadzony w programie Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

(Odziedziczone po DkmStackWalkFrame)
GetClrGenericParameters(DkmWorkList, DkmCompletionRoutine<DkmGetClrGenericParametersAsyncResult>)

Pobiera parametry ogólne dla bieżącej ramki stosu jako listę kwalifikowanych nazw zestawów.

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 14 RTM (DkmApiVersion.VS14RTM).

(Odziedziczone po DkmStackWalkFrame)
GetEffectiveAddresses(DkmInstructionAddress)

Metoda, która oblicza i zwraca obowiązujące adresy dla żądanego adresu. Efektywny adres to adres obliczeniowy reprezentowany przez operand instrukcji. Na przykład na x86 instrukcja może być typu dwordptr [esp-12]. Efektywnym adresem tego operandu będzie odejmowanie 12 od esp. Liczba operandów i adresów efektywnych jest specyficzna dla architektury.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

GetInspectionInterface(DkmInspectionSession, Guid)

GetInspectionInterface służy do uzyskiwania elementu ICorDebugFrame lub innych interfejsów specyficznych dla implementacji, których składnik może użyć do głębokiego sprawdzenia ramki stosu.

Zwrócony interfejs może służyć tylko do sprawdzania procesu docelowego i nigdy nie powinien być używany do kontrolowania wykonywania (bez wykonywania kroków, bez punktów przerwania, bez kontynuowania itp.). Takie działanie jest nieobsługiwane i spowoduje niezdefiniowane zachowanie. UWAGA: Używanie tej metody z kodu zarządzanego nie jest zalecane ze względu na wydajność. Marshalling elementu DkmStackWalkFrame między kodem natywnym i zarządzanym jest kosztowny. Zamiast tego użyj polecenia DkmRuntimeInstance.GetFrameInspectionInterface.

Ograniczenie lokalizacji: ten interfejs API musi być wywoływany z tego samego procesu, w którym docelowe środowisko uruchomieniowe implementuje stos walk lub gdzie są ładowane symbole. W przypadku debugowania zarządzanego oznacza to, że podczas debugowania procesów 64-bitowych lub zdalnych ten interfejs API musi być wywoływany ze składnika monitora debugowania.

(Odziedziczone po DkmStackWalkFrame)
GetInstructionSymbol()

Zwróć element DkmInstructionSymbol dla ramki stosu. Jeśli ramka stosu nie ma adresu instrukcji (ramki z adnotacjami) lub adres instrukcji nie ma skojarzonego modułu DkmModule, polecenie GetInstructionSymbol zwróci wartość null (S_FALSE w kodzie natywnym).

(Odziedziczone po DkmStackWalkFrame)
GetProperty(ICorDebugValue, String)

Ocenia właściwość dla danego elementu ICorDebugValue. Typ wartości musi zostać załadowany przez DkmClrAppDomain elementu DkmStackWalkFrame, na który jest wywoływana ta $Name$.

Ograniczenie lokalizacji: musi to być po stronie zdalnej, ponieważ przekazujemy element ICorDebugHandleValue.

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

(Odziedziczone po DkmStackWalkFrame)
GetUnwindAddress(DkmInstructionAddress)

Zwraca adres reprezentujący lokalizację, jeśli do tej ramki ma zostać przechwycony wyjątek.

(Odziedziczone po DkmStackWalkFrame)
InterceptCurrentException(DkmExceptionInterceptActionFlags, UInt64)

InterceptCurrentException służy do odwijania do tej ramki tak, jakby w tej ramce istniała procedura obsługi wyjątków.

(Odziedziczone po DkmStackWalkFrame)
OnSetNextStatementCompleted(DkmInstructionAddress)

OnSetNextStatementCompleted to metoda ogólnego przeznaczenia, która umożliwia składnikom czyszczenie stanu po zakończeniu następnej instrukcji zestawu. Element DkmStackWalkFrame będzie ramką przed wywołaniem SetNextStatement.

Ograniczenie lokalizacji: ten interfejs API powinien być zwykle wywoływany tylko ze składników po stronie klienta. Jednak w przypadku wywołania tego interfejsu API przez składnik po stronie monitora jest bezpieczny, jeśli kolejna instrukcja jest wywoływana z procedury obsługi zdarzeń.

(Odziedziczone po DkmStackWalkFrame)
SetNextStatement(DkmInstructionAddress)

SetNextStatement przenosi adres IP ramki stosu. Ramka stosu jest zawsze ramką stosu liścia w określonym wątku.

(Odziedziczone po DkmStackWalkFrame)

Dotyczy