DkmStackWalkFrame Třída

Definice

DkmStackWalkFrame představuje rámec v zásobníku volání, který byl vás provedl, ale pravděpodobně nebyl naformátován ani filtrován. Místo toho jsou formátované rámce reprezentovány DkmStackFrame.

Odvozené třídy: 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
Dědičnost
DkmStackWalkFrame
Odvozené
Atributy

Vlastnosti

AnnotatedModule

Volitelné Pokud máme rámec s poznámkami, Určuje volitelnou instanci modulu, která se má přidružit k tomuto snímku. Pokud je k dispozici, bude moci uživatel načíst binární soubory nebo symboly pro tento modul kliknutím pravým tlačítkem myši na tento snímek v okně zásobník volání. To je NULL pro rámečky bez poznámek.

Toto rozhraní API se zavedlo v aplikaci Visual Studio 12 RTM (DkmApiVersion. VS12RTM).

Annotations

Volitelné Kolekce poznámek rámce zásobníku jen pro čtení Jsou definovány pomocí unwind a jsou specifické pro tento unwind. Příkladem použití je způsob, jakým se data vloženého rámce předávají z vloženého filtru zásobníku do formátovacího modulu.

AsyncContext

Volitelné Volitelný kontext pro procházení asynchronních návratových zásobníků a zásobníků vytváření úloh.

Toto rozhraní API se zavedlo v aplikaci Visual Studio 12 RTM (DkmApiVersion. VS12RTM).

BasicSymbolInfo

Volitelné Obsahuje základní informace o DkmInstructionSymbol, které odpovídají InstructionAddress rámce. Pro nativní rámce bude tato akce vypočítána StackProvider před předáním snímku do filtru zásobníku.

Pro DkmStackFrame bude vždycky null.

Toto rozhraní API se zavedlo v aplikaci Visual Studio 16 RTM (DkmApiVersion. VS16RTMPreview).

Connection

To představuje připojení mezi monitorem a IDE. Může se jednat o místní připojení, pokud monitor běží ve stejném procesu jako rozhraní IDE, nebo se může jednat o vzdálené připojení. V procesu monitorování je k dispozici pouze jedno připojení.

Data

Volitelné Volitelný objekt pro připojení k DkmStackWalkFrame, který umožňuje komponentám přidružit další soukromá data k tomuto snímku.

Toto rozhraní API se zavedlo v aplikaci Visual Studio 12 RTM (DkmApiVersion. VS12RTM).

Description

Volitelné Popis rámce, který se zobrazí v okně zásobník volání. To by mělo být k dispozici pro rámečky s poznámkami.

Flags

Vlastnosti příznaků pro DkmStackWalkFrame.

FrameBase

Základní ukazatel zásobníku rámečku Tuto hodnotu používá model SDM k seřazení rámce a používá se k vyhodnocení průběhu zásobníku, takže tato hodnota je vyžadována i pro rámečky s poznámkami. Tato hodnota by měla být neplatná pouze v případě, že je zásobník laděného procesu poškozen.

FrameSize

Počet bajtů zásobníku spotřebovaného tímto rámcem. Tato hodnota bude nula pro rámečky s poznámkami, nebo pokud je hodnota neznámá.

InstructionAddress

Volitelné Instrukce tohoto rámce. Toto lze vynechat pro rámečky s poznámkami.

ModuleInstance

Volitelné Modul obsahující tuto adresu Adresy bez modulu nemohou obsahovat symboly (ani pro vlastní adresy). Adresy CLR budou mít vždy modul. Nativní adresy nebudou obsahovat modul, pokud se buď přeskočí na neplatnou adresu (např. NULL), nebo pokud CPU spouští dynamicky vysílaný kód.

Process

DkmProcess představuje cílový proces, který se právě ladí. Ladicí program ladění procesů, takže se jedná o základní jednotku ladění. DkmProcess může představovat systémový proces nebo virtuální proces, jako je například Mini výpisy.

Registers

Volitelné Registry rámce vás provedl Ty by měly být uvedeny pro rámečky bez poznámek.

RuntimeInstance

Volitelné Třída DkmRuntimeInstance představuje spouštěcí prostředí, které je načteno do DkmProcess a který obsahuje kód pro ladění.

Thread

Vlákno, na kterém je tento blok zásobníku.

Metody

CanSetNextStatement(DkmInstructionAddress)

CanSetNextStatement určuje, zda je možné přesunout IP adresu rámce zásobníku. Rámec zásobníku je vždy snímkový rámec zásobníku v konkrétním vlákně. Toto rozhraní API se dá implementovat jedině v rámci procesu motoru. Parametr Result out by měl být S_OK nebo hodnota neúspěšného HRESULT, kterou může uživatelské rozhraní namapovat na chybovou zprávu.

Omezení umístění: rozhraní API se musí volat z komponenty IDE (úroveň komponenty > 100 000).

ComputeUserStatus(DkmInspectionSession, Boolean)

Určuje, zda je rámec uživatelským kódem.

Omezení umístění: rozhraní API se musí volat z komponenty IDE (úroveň komponenty > 100 000).

Toto rozhraní API se zavedlo v aplikaci Visual Studio 12 RTM (DkmApiVersion. VS12RTM).

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>)

Vytvořte novou instanci objektu DkmStackWalkFrame.

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData)

Vytvořte novou instanci objektu DkmStackWalkFrame.

         Toto rozhraní API se zavedlo v aplikaci Visual Studio 12 RTM (DkmApiVersion. VS12RTM).
Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData, DkmBasicInstructionSymbolInfo)

Vytvořte novou instanci objektu DkmStackWalkFrame.

         Toto rozhraní API se zavedlo v aplikaci Visual Studio 16 RTM (DkmApiVersion. VS16RTMPreview).
Format(DkmInspectionSession, DkmFrameFormatOptions)

Naformátujte DkmStackWalkFrame na DkmStackFrame. Formátování rámce je jeden krok, co poskytovatel zásobníku provede během GetNextFrames. Tato metoda může být použita k naformátování rámce jiným způsobem, než byl původně proveden poskytovatelem zásobníku v GetNextFrames.

Omezení umístění: rozhraní API se musí volat z komponenty IDE (úroveň komponenty > 100 000).

GetClrGenericParameters()

Získá obecné parametry pro aktuální rámec zásobníku jako seznam kvalifikovaných názvů sestavení.

Toto rozhraní API se zavedlo v aplikaci Visual Studio 14 RTM (DkmApiVersion. VS14RTM).

GetClrGenericParameters(DkmWorkList, DkmCompletionRoutine<DkmGetClrGenericParametersAsyncResult>)

Získá obecné parametry pro aktuální rámec zásobníku jako seznam kvalifikovaných názvů sestavení.

Tato metoda připojí novou pracovní položku k určitému pracovnímu seznamu a vrátí se, jakmile bude pracovní položka připojena. Vlastní zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

Toto rozhraní API se zavedlo v aplikaci Visual Studio 14 RTM (DkmApiVersion. VS14RTM).

GetInspectionInterface(DkmInspectionSession, Guid)

GetInspectionInterface se používá k získání ICorDebugFrame nebo jiných rozhraní specifických pro implementaci, která komponenta může použít pro hloubkovou kontrolu rámce zásobníku.

Vrácené rozhraní lze použít pouze k zkontrolování cílového procesu a neměl by být nikdy použit k řízení provádění (bez krokování, žádné zarážky, žádné pokračování atd.). V takovém případě se nepodporuje a bude mít za následek nedefinované chování. Poznámka: použití této metody ze spravovaného kódu se z důvodů výkonu nedoporučuje. Zařazování DkmStackWalkFrame mezi nativním a spravovaným kódem je nákladné. Místo toho použijte DkmRuntimeInstance. GetFrameInspectionInterface.

Omezení umístění: Toto rozhraní API musí být voláno ze stejného procesu, kde cílový modul runtime implementuje procházení zásobníku nebo kde jsou symboly načteny. Pro spravované ladění to znamená, že při ladění 64ch nebo vzdálených procesů musí být toto rozhraní API voláno z komponenty monitorování ladění.

GetInstructionSymbol()

Vrátí DkmInstructionSymbol pro blok zásobníku. Pokud rámec zásobníku nemá žádnou adresu instrukce (rámec s poznámkami) nebo adresa instrukce nemá žádné přidružené DkmModule, vrátí GetInstructionSymbol hodnotu null (S_FALSE v nativním kódu).

GetProperty(ICorDebugValue, String)

Vyhodnotí vlastnost na daném ICorDebugValue. Typ hodnoty musí být načten DkmClrAppDomainem DkmStackWalkFrame, na kterém je tato $Name $ volána.

Omezení umístění: Tato akce musí být na vzdálené straně, protože předáváme ICorDebugHandleValue.

Toto rozhraní API se zavedlo v aktualizaci Visual Studio 15 Update 3 (DkmApiVersion. VS15Update3).

GetUnwindAddress(DkmInstructionAddress)

Vrátí adresu představující umístění, pokud byla výjimka zachycena do tohoto rámce.

InterceptCurrentException(DkmExceptionInterceptActionFlags, UInt64)

InterceptCurrentException – se používá k unwind do tohoto rámce, jako kdyby v tomto snímku existovala obslužná rutina výjimky.

OnSetNextStatementCompleted(DkmInstructionAddress)

OnSetNextStatementCompleted je obecná metoda, která umožňuje komponentám Vymazat stav po dokončení nastavení dalšího příkazu. DkmStackWalkFrame bude rámec před voláním SetNextStatement.

Omezení umístění: Toto rozhraní API by se obecně mělo volat jenom z komponent na straně klienta. Je však bezpečné pro komponentu na straně monitoru pro volání tohoto rozhraní API, pokud je příkaz set Next volán z obslužné rutiny události.

SetNextStatement(DkmInstructionAddress)

SetNextStatement přesune IP adresu rámce zásobníku. Rámec zásobníku je vždy snímkový rámec zásobníku v konkrétním vlákně.

Platí pro