DkmStackWalkFrame Třída

Definice

DkmStackWalkFrame představuje rámeček v zásobníku volání, který byl procházen, ale nemusí být naformátován nebo filtrován. Formátované rámce jsou místo toho 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 rámci. Pokud je k dispozici, uživatel bude moct načíst binární soubory nebo symboly pro tento modul kliknutím pravým tlačítkem na tento rámec v okně zásobníku volání. Toto je hodnota NULL pro snímky bez anotovaných poznámek.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

Annotations

[Volitelné] Kolekce poznámek k snímkům zásobníku jen pro čtení. Ty jsou definované odvíječem a jsou specifické pro tento odvíječ. Příkladem použití je způsob, jakým se data vloženého rámce předávají z filtru zásobníku vloženého do formátovače.

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 bylo zavedeno v sadě Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

BasicSymbolInfo

[Volitelné] Obsahuje základní informace o DkmInstructionSymbol odpovídající objektu InstructionAddress rámce. U nativních rámců to vypočítá StackProvider před předáním rámce do filtru zásobníku.

Pro DkmStackFrame bude mít vždy hodnotu null.

Toto rozhraní API bylo představeno v sadě Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

Connection

To představuje připojení mezi monitorováním a integrovaným vývojovém prostředím. Může se jednat buď o místní připojení, pokud monitor běží ve stejném procesu jako integrované vývojové prostředí, nebo se může jednat o vzdálené připojení. V procesu monitorování existuje 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 rámci.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

Description

[Volitelné] Popis rámce, který se zobrazí v okně zásobníku volání. Tato možnost by měla být poskytnuta pro snímky s poznámkami.

Flags

Označí vlastnosti DkmStackWalkFrame.

FrameBase

Ukazatel základního zásobníku rámce. Používá ho SDM k řazení rámce a používá ho sloučení zásobníku k vyhodnocení průběhu procházení, takže tato hodnota je vyžadována i pro snímky s poznámkami. Tato hodnota by měla být neplatná pouze v případě, že je poškozen zásobník ladicí sady.

FrameSize

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

InstructionAddress

[Volitelné] Instrukce tohoto rámce. Pro snímky s poznámkami to můžete vynechat.

ModuleInstance

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

Priority

Priorita rámu chodu zásobníku. Obvykle se používá pro snímky s poznámkami, které zjistily problém.

Toto rozhraní API bylo představeno v sadě Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5).

Process

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

Registers

[Volitelné] Rejstříky prochoceného rámu. Ty by měly být k dispozici pro snímky bez anotovaných poznámek.

RuntimeInstance

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

Thread

Vlákno, ve které je tento rámec zásobníku.

UniqueId

Jedinečný identifikátor pro DkmStackWalkFrame. Ve scénářích vzdáleného ladění to může být GUID_NULL/Guid.Empty, pokud byl rámec zařazován ze staršího integrovaného vývojového prostředí nebo vzdáleného ladicího programu.

Toto rozhraní API bylo představeno v sadě Visual Studio 16 Update 10 (DkmApiVersion.VS16Update10).

Metody

CanSetNextStatement(DkmInstructionAddress)

CanSetNextStatement určuje, jestli je možné přesunout IP adresu rámce zásobníku. Rámec zásobníku je vždy rámec zásobníku listu v určitém vlákně. Toto rozhraní API je možné implementovat pouze v rámci procesu modulu. Parametr Result out by měl být S_OK nebo hodnota HRESULT, která selhala, kterou uživatelské rozhraní může mapovat 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 bylo zavedeno v sadě Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

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

Create novou instanci objektu DkmStackWalkFrame.

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

Create novou instanci objektu DkmStackWalkFrame.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

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

Create novou instanci objektu DkmStackWalkFrame.

Toto rozhraní API bylo představeno v sadě Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

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

Create novou instanci objektu DkmStackWalkFrame.

Toto rozhraní API bylo představeno v sadě Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5).

Format(DkmInspectionSession, DkmFrameFormatOptions)

Formát DkmStackWalkFrame na DkmStackFrame. Formátování rámce je jedním z kroků, co poskytovatel zásobníku dělá během GetNextFrames. Tuto metodu lze použít k formátování rámce jiným způsobem, než byl původně proveden zprostředkovatel 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 bylo zavedeno v sadě 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 zadanému pracovnímu seznamu a vrátí se po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající obdrží oznámení o dokončení žádosti prostřednictvím rutiny dokončení.

Toto rozhraní API bylo zavedeno v sadě 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é může komponenta použít k hloubkové kontrole rámce zásobníku.

Vrácené rozhraní lze použít POUZE ke kontrole cílového procesu a NIKDY by se nemělo používat k řízení provádění (žádné krokování, žádné zarážky, žádné pokračování atd.). Tento postup 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 nedoporučuje z důvodů výkonu. 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 se musí volat ze stejného procesu, ve kterém cílový modul runtime implementuje procházení zásobníku nebo kde se načítají symboly. U spravovaného ladění to znamená, že při ladění 64bitových nebo vzdálených procesů se toto rozhraní API musí volat z komponenty monitorování ladění.

GetInstructionSymbol()

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

GetProperty(ICorDebugValue, String)

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

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

Toto rozhraní API bylo představeno v sadě Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

GetUnwindAddress(DkmInstructionAddress)

Vrátí adresu, která představuje umístění, pokud měla být zachycena výjimka pro tento rámec.

InterceptCurrentException(DkmExceptionInterceptActionFlags, UInt64)

InterceptCurrentException slouží k odvíjení do tohoto rámce, jako by v tomto rámci byla obslužná rutina výjimky.

OnSetNextStatementCompleted(DkmInstructionAddress)

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

Omezení umístění: Toto rozhraní API by se obecně mělo volat pouze ze součástí na straně klienta. Je však bezpečné, aby komponenta na straně monitorování volala toto rozhraní API, pokud se z obslužné rutiny události volá další příkaz set.

SetNextStatement(DkmInstructionAddress)

SetNextStatement přesune IP adresu rámce zásobníku. Rámec zásobníku je vždy rámec zásobníku listu v určitém vlákně.

Platí pro