Sdílet prostřednictvím


DkmStackFrame Třída

Definice

DkmStackFrame představuje rámec v zásobníku volání po filtrování a překladu.

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
Dědičnost
DkmStackFrame
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 neanotované snímky.

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

(Zděděno od DkmStackWalkFrame)
Annotations

[Volitelné] Kolekce poznámek k rámečku zásobníku jen pro čtení Ty jsou definovány odvíječem a jsou specifické pro tento odvíječ. Příkladem použití je předávání dat vloženého rámce z filtru zásobníku vložené do formátovače.

(Zděděno od DkmStackWalkFrame)
AsyncContext

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

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

(Zděděno od DkmStackWalkFrame)
BasicSymbolInfo

[Volitelné] Obsahuje základní informace o DkmInstructionSymbol odpovídající rámeček's InstructionAddress. V případě nativních rámců to stackProvider vypočítá 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 zavedeno v sadě Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

(Zděděno od DkmStackWalkFrame)
CompilerId

LanguageId/VendorId kompilátoru, který vytvořil kód pro tento rámec zásobníku. Pokud je tato možnost neznámá (např. pro tento modul nejsou načteny žádné symboly), budou obě hodnoty Guid.Empty. V opačném případě by obě hodnoty měly být nenulové.

Connection

To představuje připojení mezi monitorováním a integrovaným vývojovém prostředím. Může se jednat o místní připojení, pokud monitorování běží ve stejném procesu jako integrované vývojové prostředí (IDE), nebo může být vzdálené připojení. V procesu monitorování existuje pouze jedno připojení.

(Zděděno od DkmStackWalkFrame)
Data

[Volitelné] Volitelný objekt pro připojení k DkmStackWalkFrame, který umožňuje komponentám přidružit další privátní data k rámci.

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

(Zděděno od DkmStackWalkFrame)
Description

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

(Zděděno od DkmStackWalkFrame)
Flags

Označí vlastnosti DkmStackWalkFrame.

(Zděděno od 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ího prostředí.

(Zděděno od DkmStackWalkFrame)
FrameName

Název rámce zásobníku. DkmStackFrame.FormatOptions určuje formát názvu funkce.

FrameSize

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

(Zděděno od DkmStackWalkFrame)
InstructionAddress

[Volitelné] Instrukce tohoto rámce. Pro snímky s poznámkami je možné tuto možnost vynechat.

(Zděděno od DkmStackWalkFrame)
IsStale

Určuje, jestli je tento rámec zásobníku zastaralý nebo ne po úpravách a pokračování.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6).

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.

(Zděděno od DkmStackWalkFrame)
Options

Kolekce nastavení, která mají vliv na to, jak poskytovatel zásobníku formátuje DkmStackFrame.

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).

(Zděděno od DkmStackWalkFrame)
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.

(Zděděno od DkmStackWalkFrame)
Registers

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

(Zděděno od DkmStackWalkFrame)
ReturnType

[Volitelné] Název návratového typu rámce zásobníku Toto je k dispozici pouze v případě, že je nastavena hodnota DkmFrameNameFormatOptions.ReturnTypeField.

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í.

(Zděděno od DkmStackWalkFrame)
SourcePosition

[Volitelné] Umístění zdrojového kódu pro tento rámec zásobníku To je k dispozici pouze v případě, že DkmFrameNameFormatOptions.DocumentPositionField je nastavena.

Thread

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

(Zděděno od DkmStackWalkFrame)
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).

(Zděděno od DkmStackWalkFrame)

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 na konkrétním vlákně. Toto rozhraní API může být implementováno pouze v rámci procesu modulu. Parametr Result out by měl být S_OK nebo hodnotu neúspěšné hodnoty HRESULT, 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).

(Zděděno od DkmStackWalkFrame)
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).

(Zděděno od DkmStackWalkFrame)
Create(DkmStackWalkFrame, DkmFrameFormatOptions, DkmCompilerId, String, String, DkmSourcePosition)

Create novou instanci objektu DkmStackFrame.

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

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

Create novou instanci objektu DkmStackFrame.

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 15 Update 6 (DkmApiVersion.VS15Update6).

ExtractFromAD7Object(IDebugStackFrame2)

Získá objekt DkmStackFrame z objektu rámce zásobníku AD7. Toto rozhraní API používají balíčky sady Visual Studio nebo doplňky, které chtějí získat přístup k rozhraní CONCORD API za účelem získání podrobnějších informací o laděném procesu. Toto rozhraní API bude správně fungovat pouze z hlavního vlákna sady Visual Studio.

ExtractFromDTEObject(StackFrame)

Získá DkmStackFrame z objektu zásobníku rámce DTE (automatizace ladicího programu). Toto rozhraní API používají balíčky sady Visual Studio nebo doplňky, které chtějí získat přístup k rozhraní CONCORD API za účelem získání podrobnějších informací o laděném procesu. Objekt automation se často získává z události automatizace OnContextChanged nebo z vlastnosti Debugger.CurrentStackFrame. Toto rozhraní API bude správně fungovat pouze z hlavního vlákna sady Visual Studio.

Format(DkmInspectionSession, DkmFrameFormatOptions)

Formát DkmStackWalkFrame na DkmStackFrame. Formátování rámce je jedním z kroků, které 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 poskytovatelem zásobníku v GetNextFrames.

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

(Zděděno od DkmStackWalkFrame)
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).

(Zděděno od DkmStackWalkFrame)
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řidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné 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 bylo zavedeno v sadě Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

(Zděděno od DkmStackWalkFrame)
GetEffectiveAddresses(DkmInstructionAddress)

Metoda, která vypočítá a vrátí platné adresy požadované adresy. Efektivní adresa je počítaná adresa, kterou operand instrukce představuje. Například na x86 může být instrukce ve tvaru dwordptr [esp-12]. Efektivní adresa tohoto operandu bude výsledkem odečtení čísla 12 od esp. Počet operandů a efektivních adres jsou specifické pro architekturu.

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

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 nemělo by se nikdy používat k řízení provádění (žádné krokování, žádné zarážky, žádné pokračování atd.). Tento postup není podporován 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. Řazení 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 trasu 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í.

(Zděděno od DkmStackWalkFrame)
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 pokud adresa instrukce nemá žádný přidružený DkmModule, getInstructionSymbol vrátí hodnotu null (S_FALSE v nativním kódu).

(Zděděno od DkmStackWalkFrame)
GetProperty(ICorDebugValue, String)

Vyhodnotí vlastnost na dané 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 zavedeno v sadě Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

(Zděděno od DkmStackWalkFrame)
GetUnwindAddress(DkmInstructionAddress)

Vrátí adresu, která představuje umístění, pokud se do tohoto rámce měla zachytit výjimka.

(Zděděno od DkmStackWalkFrame)
InterceptCurrentException(DkmExceptionInterceptActionFlags, UInt64)

InterceptCurrentException se používá k odvíjení k tomuto snímku, jako by v tomto snímku byla obslužná rutina výjimky.

(Zděděno od DkmStackWalkFrame)
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.

(Zděděno od DkmStackWalkFrame)
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ě.

(Zděděno od DkmStackWalkFrame)

Platí pro