DkmStackWalkFrame Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
DkmStackWalkFrame reprezentuje ramkę na stosie wywołań, który został przekazany, ale mógł nie zostać sformatowany ani przefiltrowany. Zamiast tego sformatowane ramki są reprezentowane przez element DkmStackFrame.
Klasy pochodne: DkmStackFrame
public ref class DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
class DkmStackWalkFrame
[System.Runtime.InteropServices.Guid("48b55030-ecac-2387-4e63-bfdc3c172598")]
public class DkmStackWalkFrame
[<System.Runtime.InteropServices.Guid("48b55030-ecac-2387-4e63-bfdc3c172598")>]
type DkmStackWalkFrame = class
Public Class DkmStackWalkFrame
- Dziedziczenie
-
DkmStackWalkFrame
- Pochodne
- 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). |
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. |
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). |
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). |
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. |
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). |
Description |
[Opcjonalnie] Opis ramki, która będzie wyświetlana w oknie stosu wywołań. Należy to podać dla ramek z adnotacjami. |
Flags |
Flaguje właściwości elementu 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. |
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. |
InstructionAddress |
[Opcjonalnie] Instrukcja tej ramki. Można to pominąć w przypadku ramek z adnotacjami. |
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 cpu wykonuje dynamicznie emitowany kod. |
Priority |
Priorytet ramy 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). |
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. |
Registers |
[Opcjonalnie] Rejestry klatki spacerowej. Należy je podać dla ramek bez adnotacji. |
RuntimeInstance |
[Opcjonalnie] Klasa DkmRuntimeInstance reprezentuje środowisko wykonawcze, które jest ładowane do obiektu DkmProcess i który zawiera kod do debugowania. |
Thread |
Wątek, na który jest włączona ta ramka stosu. |
UniqueId |
Unikatowy identyfikator elementu DkmStackWalkFrame. W scenariuszach zdalnego debugowania może to być GUID_NULL/Guid.Empty, jeśli ramka została schowana ze starszego środowiska IDE/debugera zdalnego. Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 10 (DkmApiVersion.VS16Update10). |
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). |
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). |
Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>) |
Twórca nowe wystąpienie obiektu DkmStackWalkFrame. |
Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData) |
Twórca nowe wystąpienie obiektu DkmStackWalkFrame. Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM). |
Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData, DkmBasicInstructionSymbolInfo) |
Twórca nowe wystąpienie obiektu DkmStackWalkFrame. Ten interfejs API został wprowadzony w programie Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview). |
Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData, DkmBasicInstructionSymbolInfo, DkmStackWalkFramePriority) |
Twórca nowe wystąpienie obiektu DkmStackWalkFrame. Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5). |
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). |
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). |
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). |
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. |
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). |
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). |
GetUnwindAddress(DkmInstructionAddress) |
Zwraca adres reprezentujący lokalizację, jeśli do tej ramki ma zostać przechwycony wyjątek. |
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. |
OnSetNextStatementCompleted(DkmInstructionAddress) |
OnSetNextStatementCompleted to metoda ogólnego przeznaczenia umożliwiająca 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 składnik po stronie monitora jest bezpieczny do wywołania tego interfejsu API, jeśli kolejna instrukcja zestawu jest wywoływana z programu obsługi zdarzeń. |
SetNextStatement(DkmInstructionAddress) |
SetNextStatement przenosi adres IP ramki stosu. Ramka stosu jest zawsze ramką stosu liści na określonym wątku. |