Sdílet prostřednictvím


DkmScriptInstructionSymbol Třída

Definice

DkmScriptInstructionSymbol se používá k reprezentaci spustitelného příkazu v prostředí runtime založeném na skriptech, jako je modul Microsoft JavaScript.

public ref class DkmScriptInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmScriptInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
class DkmScriptInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[System.Runtime.InteropServices.Guid("aebaa0af-6437-2ecf-aaf1-86c58eba9447")]
public class DkmScriptInstructionSymbol : Microsoft.VisualStudio.Debugger.Symbols.DkmInstructionSymbol
[<System.Runtime.InteropServices.Guid("aebaa0af-6437-2ecf-aaf1-86c58eba9447")>]
type DkmScriptInstructionSymbol = class
    inherit DkmInstructionSymbol
Public Class DkmScriptInstructionSymbol
Inherits DkmInstructionSymbol
Dědičnost
DkmScriptInstructionSymbol
Atributy

Vlastnosti

AdditionalData

[Volitelné] Další data specifická pro modul runtime přidružená k adrese Tato data nebudou použita při porovnávání adres.

Document

Dokument obsahující tento návod.

Module

Třída DkmModule představuje sadu kódu (např. dll nebo exe), která je nebo byla jednou načtena do jednoho nebo více procesů. Třída DkmModule je centrálním objektem rozhraní API symbolů a je 1:1 s notací obslužné rutiny symbolu, co je načteno. Pokud se sada kódu načte do tří různých procesů (nebo stejného procesu, ale se třemi různými základními adresami nebo třemi různými doménami aplikace), ale obslužná rutina symbolu si myslí, že jsou všechny stejné, bude existovat pouze jeden objekt modulu.

(Zděděno od DkmInstructionSymbol)
Revision

Označuje číslo revize, které vložil příkaz reprezentovaný tímto objektem. U nedynamičtějších dokumentů to obvykle bude nula.

RuntimeType

ID modulu runtime identifikuje spouštěcí prostředí pro konkrétní část kódu. Dispečer používá ID modulu runtime k rozhodnutí, do kterého monitorování se má odeslat. Všimněte si, že pořadí IDENTIFIKÁTORů GUID modulu runtime je poněkud významné, protože to určuje, který modul runtime získá první snímek během rozhodčího řízení. Pokud tedy chcete deklarovat novou instanci modulu runtime, která je založená na modulu CLR, id modulu runtime by mělo být menší než DkmRuntimeId.Clr.

(Zděděno od DkmInstructionSymbol)
StartIndex

Označuje index počátečního znaku tohoto příkazu vzhledem k začátku revize, která tento příkaz vložil.

StatementLength

Délka příkazu (ve znatech).

TagValue

DkmInstructionSymbol je abstraktní základní třída. Tento výčet označuje, které odvozené třídy je tento objekt instancí.

(Zděděno od DkmInstructionSymbol)

Metody

Bind(DkmModuleInstance)

Vytvoří vazbu symbolu instrukce na konkrétní instanci modulu. Symbol instrukce je připojen k DkmModule místo DkmModuleInstance, takže není vázán na konkrétní proces, doménu aplikace nebo základní adresu modulu.

(Zděděno od DkmInstructionSymbol)
Create(DkmModule, Guid, DkmScriptDocument, Int32, Int32, Int32, ReadOnlyCollection<Byte>)

Create novou instanci objektu DkmScriptInstructionSymbol.

GetAlternateSourcePosition(DkmSourcePositionFlags)

Vrátí alternativní pozici zdrojového souboru (například example.cs, řádek 12) pro tento symbol instrukce. V současné době se používá ve scénářích mapování zdrojů k vrácení původního (nenamapovaného) zdrojového umístění. Toto rozhraní API bude volat uživatelské rozhraní ladicího programu v případech, kdy nelze najít primární umístění zdroje.

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 Update 3 (DkmApiVersion.VS12Update3).

(Zděděno od DkmInstructionSymbol)
GetBasicInfo(DkmWorkList, DkmModuleInstance, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetBasicSymbolInfoAsyncResult>)

Asynchronně vypočítá základní informace o symbolech pro daný DkmInstructionSymbol.

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

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 16 RTM (DkmApiVersion.VS16RTMPreview).

(Zděděno od DkmInstructionSymbol)
GetCompilerId(DkmInspectionSession)

Vrátí ID kompilátoru (LanguageId/VendorId) daného symbolu.

Pokud byl soubor PDB vytvořen kompilátorem, který používal ISymUnmanagedWriter, bude čtečka PDB schopna určit správné DkmCompilerId z páru LanguageId/VendorId předaného z ISymUnmanagedWriter.DefineDocument.

Pokud byl soubor PDB vytvořen kompilátorem, který nepoužíval ISymUnmanagedWriter, může být čtenář PDB schopen získat DkmCompilerId z S_COMPILE* PDB záznamů. Aby to fungovalo, musí kompilátor nejprve vygenerovat záznam S_COMPILE* pro každou compiland. Kompilátor musí mít jistotu, že správně vyplní hodnotu výčtu jazyka a řetězec kompilátoru. Kompilátor by měl zajistit, aby byl řetězec kompilátoru dostatečně specifický pro výběr vyhodnocovače výrazů. Doporučuje se zadat název společnosti. Po vygenerování dvojice Enum/Name by pak nastavení vyhodnocovače výrazů mělo tuto dvojici zaregistrovat v ladicím programu. K tomu by měl vyhodnocovač výrazů nastavit tento klíč registru: %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% a definovat VendorId/LanguageId.

(Zděděno od DkmInstructionSymbol)
GetCompilerId(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetCompilerIdAsyncResult>)

Vrátí ID kompilátoru (LanguageId/VendorId) daného symbolu.

Pokud byl soubor PDB vytvořen kompilátorem, který používal ISymUnmanagedWriter, bude čtečka PDB schopna určit správné DkmCompilerId z páru LanguageId/VendorId předaného z ISymUnmanagedWriter.DefineDocument.

Pokud byl soubor PDB vytvořen kompilátorem, který nepoužíval ISymUnmanagedWriter, může být čtenář PDB schopen získat DkmCompilerId z S_COMPILE* PDB záznamů. Aby to fungovalo, musí kompilátor nejprve vygenerovat záznam S_COMPILE* pro každou compiland. Kompilátor musí mít jistotu, že správně vyplní hodnotu výčtu jazyka a řetězec kompilátoru. Kompilátor by měl zajistit, aby byl řetězec kompilátoru dostatečně specifický pro výběr vyhodnocovače výrazů. Doporučuje se zadat název společnosti. Po vygenerování dvojice Enum/Name by pak nastavení vyhodnocovače výrazů mělo tuto dvojici zaregistrovat v ladicím programu. K tomu by měl vyhodnocovač výrazů nastavit tento klíč registru: %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% a definovat VendorId/LanguageId.

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

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 16 RTM (DkmApiVersion.VS16RTMPreview).

(Zděděno od DkmInstructionSymbol)
GetCurrentStatementRange()

Tato metoda vrátí rozsah odsazení IL, který obsahuje aktuální posun IL, jak je uvedeno v adrese instrukce.

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

(Zděděno od DkmInstructionSymbol)
GetDisassemblyLabel(DkmInspectionSession)

Vraťte název symbolu tak, jak by se měl zobrazit v okně pro demontáž. Kód Jazyka Microsoft C++ je založen na názvu veřejného symbolu.

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

(Zděděno od DkmInstructionSymbol)
GetEmbeddedDocument()

Vrátí vložený dokument obsahující tento symbol. Vrátí S_FALSE, pokud vložený dokument neexistuje.

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 5 (DkmApiVersion.VS15Update5).

(Zděděno od DkmInstructionSymbol)
GetGPUInstructionMetadataCallback(DkmInstructionAddress, DkmInstructionSymbol)

Tato metoda vrací informace o adrese do monitoru ladění GPU.

(Zděděno od DkmInstructionSymbol)
GetInlineFramesCount(DkmBasicSymbolInfoRequestFlags)

Vrátí počet vložených rámců v daném symbolu instrukce.

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 16 RTM (DkmApiVersion.VS16RTMPreview).

(Zděděno od DkmInstructionSymbol)
GetInlineFramesCount(DkmWorkList, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetInlineFramesCountAsyncResult>)

Vrátí počet vložených rámců v daném symbolu instrukce.

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

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 16 RTM (DkmApiVersion.VS16RTMPreview).

(Zděděno od DkmInstructionSymbol)
GetInlineSourcePosition(DkmStackWalkFrame, Boolean)

Vrátí pozici zdrojového souboru (např. example.cs, řádek 12) tohoto instrukčního symbolu na zadaném vložené číslo rámce. Pokud tento symbol instrukce není přidružený ke zdrojovému souboru, vrátí se hodnota null (S_FALSE vrátí kód v nativním nastavení).

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 RTM (DkmApiVersion.VS15RTM).

(Zděděno od DkmInstructionSymbol)
GetInlineSourcePosition(DkmWorkList, DkmStackWalkFrame, DkmCompletionRoutine<DkmGetInlineSourcePositionAsyncResult>)

Vrátí pozici zdrojového souboru (např. example.cs, řádek 12) tohoto instrukčního symbolu na zadaném vložené číslo rámce. Pokud tento symbol instrukce není přidružený ke zdrojovému souboru, vrátí se hodnota null (S_FALSE vrátí kód v nativním nastavení).

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

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 RTM (DkmApiVersion.VS15RTM).

(Zděděno od DkmInstructionSymbol)
GetNextSteppingAction(DkmScriptInstructionSymbol, Boolean)

Voláním zpět implementovaným poskytovatelem symbolů skriptu sdělíte monitorování ladění skriptů, co má při krokování dělat dál.

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

GetNoSourceRanges()

Dotazuje se na poskytovatele symbolů, aby určil rozsahy instrukcí, které neodpovídají žádným příkazům zdroje uživatele a jsou používány monitorováním základního ladění k tomu, aby vždy krokoval během krokování.

(Zděděno od DkmInstructionSymbol)
GetSourcePosition(DkmSourcePositionFlags, DkmInspectionSession, Boolean)

Vrátí pozici zdrojového souboru (například example.cs, řádek 12) tohoto symbolu instrukce. Pokud tento symbol instrukce není přidružený ke zdrojovému souboru, vrátí se hodnota null (S_FALSE vrátí kód v nativním nastavení).

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

(Zděděno od DkmInstructionSymbol)
GetSourcePosition(DkmWorkList, DkmSourcePositionFlags, DkmInspectionSession, DkmCompletionRoutine<DkmGetSourcePositionAsyncResult>)

Vrátí pozici zdrojového souboru (například example.cs, řádek 12) tohoto symbolu instrukce. Pokud tento symbol instrukce není přidružený ke zdrojovému souboru, vrátí se hodnota null (S_FALSE vrátí kód v nativním nastavení).

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

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

(Zděděno od DkmInstructionSymbol)
GetSourcePositionCallback(DkmSourcePositionFlags, DkmInspectionSession, Boolean)

Vrátí pozici zdrojového souboru (například example.cs, řádek 12) tohoto symbolu instrukce. Pokud tento symbol instrukce není přidružený ke zdrojovému souboru, vrátí se hodnota null (S_FALSE vrátí kód v nativním nastavení).

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

(Zděděno od DkmInstructionSymbol)
GetSourcePositionCallback(DkmWorkList, DkmSourcePositionFlags, DkmInspectionSession, DkmCompletionRoutine<DkmGetSourcePositionCallbackAsyncResult>)

Vrátí pozici zdrojového souboru (například example.cs, řádek 12) tohoto symbolu instrukce. Pokud tento symbol instrukce není přidružený ke zdrojovému souboru, vrátí se hodnota null (S_FALSE vrátí kód v nativním nastavení).

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

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

(Zděděno od DkmInstructionSymbol)
GetSteppingRanges(DkmSteppingRangeBoundary, Boolean)

Dotazuje poskytovatele symbolů, aby určil rozsahy pokynů, kterými by měl základní monitorování ladění krokovat, aby implementovaly krok.

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

(Zděděno od DkmInstructionSymbol)
GetSteppingRanges(DkmWorkList, DkmSteppingRangeBoundary, Boolean, DkmCompletionRoutine<DkmGetSteppingRangesAsyncResult>)

Dotazuje poskytovatele symbolů, aby určil rozsahy pokynů, kterými by měl základní monitorování ladění krokovat, aby implementovaly krok.

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

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

(Zděděno od DkmInstructionSymbol)
GetUserCodeSourcePositionCallback(DkmInspectionSession)

Vrátí pozici zdrojového souboru (například example.cs, řádek 12) tohoto symbolu instrukce. Pokud tento symbol instrukce není přidružený ke zdrojovému souboru nebo není v uživatelském kódu, vrátí se hodnota null (E_INSTRUCTION_NO_SOURCE návratový kód).

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

(Zděděno od DkmInstructionSymbol)
GetUserCodeSourcePositionCallback(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetUserCodeSourcePositionCallbackAsyncResult>)

Vrátí pozici zdrojového souboru (například example.cs, řádek 12) tohoto symbolu instrukce. Pokud tento symbol instrukce není přidružený ke zdrojovému souboru nebo není v uživatelském kódu, vrátí se hodnota null (E_INSTRUCTION_NO_SOURCE návratový kód).

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

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

(Zděděno od DkmInstructionSymbol)
HasEmbeddedDocument()

Testuje, jestli má daný symbol vložený dokument. Vložené dokumenty jsou, když je zdrojový soubor (např. main.cs) vložený do souboru symbolu (např. example.pdb).

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 8 (DkmApiVersion.VS15Update8).

(Zděděno od DkmInstructionSymbol)
HasLineInfo()

Dotazuje poskytovatele symbolů, aby zjistil, jestli máme informace o řádku. Monitorování ladění se používá k rozhodování, jestli umístění může být považováno za uživatelský kód.

Omezení umístění: Pro běžné symboly je možné je volat z libovolné komponenty. Dynamické symboly lze volat pouze na straně serveru.

(Zděděno od DkmInstructionSymbol)
HasLineInfo(DkmWorkList, DkmCompletionRoutine<DkmHasLineInfoAsyncResult>)

Dotazuje poskytovatele symbolů, aby zjistil, jestli máme informace o řádku. Monitorování ladění se používá k rozhodování, jestli umístění může být považováno za uživatelský kód.

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

Omezení umístění: Pro běžné symboly je možné je volat z libovolné komponenty. Dynamické symboly lze volat pouze na straně serveru.

(Zděděno od DkmInstructionSymbol)
IsHiddenCode(DkmWorkList, DkmInspectionSession, DkmInstructionAddress, DkmCompletionRoutine<DkmIsHiddenCodeAsyncResult>)

Vrátí, pokud je tento symbol instrukce ve skrytém kódu. Například ve spravovaném kódu číslo řádku 0xfeefee označí zdrojový řádek jako skrytý.

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

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

(Zděděno od DkmInstructionSymbol)

Platí pro