DkmScriptInstructionSymbol 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
DkmScriptInstructionSymbol 可用來代表以腳本為基礎的運行時間環境中可執行的語句,例如 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
- 繼承
- 屬性
屬性
AdditionalData |
[選擇性]與地址相關聯的其他運行時間特定數據。 比較位址時,將不會使用此數據。 |
Document |
包含此指令的檔。 |
Module |
DkmModule 類別代表程式代碼組合 (例如:dll 或 exe) ,也就是或一次載入一或多個進程。 DkmModule 類別是符號 API 的中央物件,而且是 1:1,而符號處理程式會表示載入的內容。 如果程式代碼組合載入三個不同的進程 (或相同的進程,但有三個不同的基位址或三個不同的應用程式域) 但符號處理程式會將這兩者視為相同,則只有一個模組物件。 (繼承來源 DkmInstructionSymbol) |
Revision |
表示插入這個物件所表示之語句的修訂編號。 一般而言,對於非動態檔而言,這會是零。 |
RuntimeType |
運行時間識別碼段的執行環境。 發送器會使用運行時間標識碼來決定要分派的監視。 請注意,運行時間標識符 Guid 的排序稍微重要,這表示在仲裁期間,哪個運行時間會取得第一次。 因此,如果想要宣告建置在CLR上的新運行時間實例,運行時間標識碼應該小於 DkmRuntimeId.Clr。 (繼承來源 DkmInstructionSymbol) |
StartIndex |
表示這個語句的起始字元索引,相對於插入此語句的修訂開頭。 |
StatementLength |
語句的長度 (字元) 。 |
TagValue |
DkmInstructionSymbol 是抽象基類。 這個列舉表示這個對像是實例的衍生類別。 (繼承來源 DkmInstructionSymbol) |
方法
Bind(DkmModuleInstance) |
將指令符號系結至特定模組實例。 指令符號會連線到 DkmModule,而不是 DkmModuleInstance,因此它不會繫結至特定進程、應用程式域或模組基位址。 (繼承來源 DkmInstructionSymbol) |
Create(DkmModule, Guid, DkmScriptDocument, Int32, Int32, Int32, ReadOnlyCollection<Byte>) |
Create 新的 DkmScriptInstructionSymbol 物件實例。 |
GetAlternateSourcePosition(DkmSourcePositionFlags) |
傳回替代原始程式檔位置 (例如:此指令符號example.cs行 12 行) 。 這目前用於來源對應案例,以傳回原始 (未對應的) 來源位置。 如果找不到主要來源位置,調試程式 UI 會呼叫此 API。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 12 Update 3 (DkmApiVersion.VS12Update3) 引進。 (繼承來源 DkmInstructionSymbol) |
GetBasicInfo(DkmWorkList, DkmModuleInstance, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetBasicSymbolInfoAsyncResult>) |
以異步方式計算指定 DkmInstructionSymbol 的基本符號資訊。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview) 中引進。 (繼承來源 DkmInstructionSymbol) |
GetCompilerId(DkmInspectionSession) |
傳回指定符號 (LanguageId/VendorId) 編譯程式識別符。 針對 Microsoft PDB 讀取器,如果 PDB 是由使用 ISymUnmanagedWriter 的編譯程式所建立,則 PDB 讀取器將能夠從從 ISymUnmanagedWriter.DefineDocument 傳遞的 LanguageId/VendorId 配對判斷正確的 DkmCompilerId。 如果 PDB 是由未使用 ISymUnmanagedWriter 的編譯程式所建立,PDB 讀取器或許可以從 S_COMPILE* PDB 記錄取得 DkmCompilerId。 若要讓此作業正常運作,編譯程式必須先為每個編譯者發出S_COMPILE* 記錄。 編譯程式必須確實正確填寫語言列舉值和編譯程式字串。 編譯程式應該確保編譯程式字串足以用於選取表達式評估工具;建議包含公司名稱。 發出列舉/名稱組之後,表達式評估工具的設定應該接著向調試程序註冊此配對。 若要這樣做,表達式評估工具應該設定此登錄機碼:%VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% 並定義 VendorId/LanguageId。 (繼承來源 DkmInstructionSymbol) |
GetCompilerId(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetCompilerIdAsyncResult>) |
傳回指定符號 (LanguageId/VendorId) 編譯程式識別符。 針對 Microsoft PDB 讀取器,如果 PDB 是由使用 ISymUnmanagedWriter 的編譯程式所建立,則 PDB 讀取器將能夠從從 ISymUnmanagedWriter.DefineDocument 傳遞的 LanguageId/VendorId 配對判斷正確的 DkmCompilerId。 如果 PDB 是由未使用 ISymUnmanagedWriter 的編譯程式所建立,PDB 讀取器或許可以從 S_COMPILE* PDB 記錄取得 DkmCompilerId。 若要讓此作業正常運作,編譯程式必須先為每個編譯者發出S_COMPILE* 記錄。 編譯程式必須確實正確填寫語言列舉值和編譯程式字串。 編譯程式應該確保編譯程式字串足以用於選取表達式評估工具;建議包含公司名稱。 發出列舉/名稱組之後,表達式評估工具的設定應該接著向調試程序註冊此配對。 若要這樣做,表達式評估工具應該設定此登錄機碼:%VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% 並定義 VendorId/LanguageId。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview) 中引進。 (繼承來源 DkmInstructionSymbol) |
GetCurrentStatementRange() |
這個方法會傳回 IL 位移範圍,其中包含指令位址中指定的目前 IL 位移。 位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。 (繼承來源 DkmInstructionSymbol) |
GetDisassemblyLabel(DkmInspectionSession) |
傳回符號的名稱,因為它應該出現在反組譯碼視窗中。 對於 Microsoft C++ 程式代碼,這是以公用符號名稱為基礎。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 (繼承來源 DkmInstructionSymbol) |
GetEmbeddedDocument() |
傳回包含此符號的內嵌檔。 如果內嵌檔不存在,則傳回S_FALSE。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 15 Update 5 (DkmApiVersion.VS15Update5) 引進。 (繼承來源 DkmInstructionSymbol) |
GetGPUInstructionMetadataCallback(DkmInstructionAddress, DkmInstructionSymbol) |
這個方法會將位址資訊傳回 GPU 偵錯監視器。 (繼承來源 DkmInstructionSymbol) |
GetInlineFramesCount(DkmBasicSymbolInfoRequestFlags) |
傳回指定指令符號處的內嵌框架數目。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview) 中引進。 (繼承來源 DkmInstructionSymbol) |
GetInlineFramesCount(DkmWorkList, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetInlineFramesCountAsyncResult>) |
傳回指定指令符號處的內嵌框架數目。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview) 中引進。 (繼承來源 DkmInstructionSymbol) |
GetInlineSourcePosition(DkmStackWalkFrame, Boolean) |
傳回來源檔案位置 (例如:example.cs,此指令符號的第 12 行) 位於指定的內嵌框架編號。 如果這個指令符號與原始程式檔沒有關聯,則會在原生) 傳回 null (S_FALSE 傳回碼。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 15 RTM (DkmApiVersion.VS15RTM) 中引進。 (繼承來源 DkmInstructionSymbol) |
GetInlineSourcePosition(DkmWorkList, DkmStackWalkFrame, DkmCompletionRoutine<DkmGetInlineSourcePositionAsyncResult>) |
傳回來源檔案位置 (例如:example.cs,此指令符號的第 12 行) 位於指定的內嵌框架編號。 如果這個指令符號與原始程式檔沒有關聯,則會在原生) 傳回 null (S_FALSE 傳回碼。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 15 RTM (DkmApiVersion.VS15RTM) 中引進。 (繼承來源 DkmInstructionSymbol) |
GetNextSteppingAction(DkmScriptInstructionSymbol, Boolean) |
腳本符號提供者所實作的回呼,告知腳本偵錯在逐步執行時監視接下來要執行的動作。 位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。 |
GetNoSourceRanges() |
查詢符號提供者,以判斷未對應至任何使用者來源語句的指令範圍,並由基底偵錯監視器用來在逐步執行期間一律逐步執行。 (繼承來源 DkmInstructionSymbol) |
GetSourcePosition(DkmSourcePositionFlags, DkmInspectionSession, Boolean) |
傳回來源檔案位置 (例如:example.cs,此指令符號的第 12 行) 。 如果這個指令符號與原始程式檔沒有關聯,則會在原生) 傳回 null (S_FALSE 傳回碼。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 (繼承來源 DkmInstructionSymbol) |
GetSourcePosition(DkmWorkList, DkmSourcePositionFlags, DkmInspectionSession, DkmCompletionRoutine<DkmGetSourcePositionAsyncResult>) |
傳回來源檔案位置 (例如:example.cs,此指令符號的第 12 行) 。 如果這個指令符號與原始程式檔沒有關聯,則會在原生) 傳回 null (S_FALSE 傳回碼。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 (繼承來源 DkmInstructionSymbol) |
GetSourcePositionCallback(DkmSourcePositionFlags, DkmInspectionSession, Boolean) |
傳回來源檔案位置 (例如:example.cs,此指令符號的第 12 行) 。 如果這個指令符號與原始程式檔沒有關聯,則會在原生) 傳回 null (S_FALSE 傳回碼。 位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。 (繼承來源 DkmInstructionSymbol) |
GetSourcePositionCallback(DkmWorkList, DkmSourcePositionFlags, DkmInspectionSession, DkmCompletionRoutine<DkmGetSourcePositionCallbackAsyncResult>) |
傳回來源檔案位置 (例如:example.cs,此指令符號的第 12 行) 。 如果這個指令符號與原始程式檔沒有關聯,則會在原生) 傳回 null (S_FALSE 傳回碼。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。 (繼承來源 DkmInstructionSymbol) |
GetSteppingRanges(DkmSteppingRangeBoundary, Boolean) |
查詢符號提供者,以判斷基底偵錯監視器應該逐步執行以實作步驟的指示範圍。 位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。 (繼承來源 DkmInstructionSymbol) |
GetSteppingRanges(DkmWorkList, DkmSteppingRangeBoundary, Boolean, DkmCompletionRoutine<DkmGetSteppingRangesAsyncResult>) |
查詢符號提供者,以判斷基底偵錯監視器應該逐步執行以實作步驟的指示範圍。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。 (繼承來源 DkmInstructionSymbol) |
GetUserCodeSourcePositionCallback(DkmInspectionSession) |
傳回來源檔案位置 (例如:example.cs,此指令符號的第 12 行) 。 如果這個指令符號與原始程式代碼中沒有關聯,則會傳回 null (E_INSTRUCTION_NO_SOURCE 傳回碼) 。 位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。 (繼承來源 DkmInstructionSymbol) |
GetUserCodeSourcePositionCallback(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetUserCodeSourcePositionCallbackAsyncResult>) |
傳回來源檔案位置 (例如:example.cs,此指令符號的第 12 行) 。 如果這個指令符號與原始程式代碼中沒有關聯,則會傳回 null (E_INSTRUCTION_NO_SOURCE 傳回碼) 。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。 (繼承來源 DkmInstructionSymbol) |
HasEmbeddedDocument() |
測試指定的符號是否有內嵌檔。 內嵌檔是原始程式檔 (例如:main.cs) 内嵌在符号档内 (,例如:example.pdb) 。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 15 Update 8 (DkmApiVersion.VS15Update8) 引進。 (繼承來源 DkmInstructionSymbol) |
HasLineInfo() |
查詢符號提供者,以判斷是否有行資訊。 偵錯監視器用來判斷位置是否可視為用戶程序代碼。 位置條件約束:對於一般符號,可以從任何元件呼叫。 針對動態符號,只能在伺服器端呼叫。 (繼承來源 DkmInstructionSymbol) |
HasLineInfo(DkmWorkList, DkmCompletionRoutine<DkmHasLineInfoAsyncResult>) |
查詢符號提供者,以判斷是否有行資訊。 偵錯監視器用來判斷位置是否可視為用戶程序代碼。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:對於一般符號,可以從任何元件呼叫。 針對動態符號,只能在伺服器端呼叫。 (繼承來源 DkmInstructionSymbol) |
IsHiddenCode(DkmWorkList, DkmInspectionSession, DkmInstructionAddress, DkmCompletionRoutine<DkmIsHiddenCodeAsyncResult>) |
如果這個指令符號位於隱藏的程式代碼中,則傳回 。 例如,在Managed程式碼中,行號0xfeefee將源行標示為隱藏。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 (繼承來源 DkmInstructionSymbol) |