DkmStackFrame Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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) |