DkmNativeInstructionSymbol 類別

定義

DkmNativeInstructionSymbol 代表目標進程模組內的原生指令。 DkmNativeInstructionSymbol 是具有基礎原生指令的 1:1。 因此,如果方法有兩個範本具現化 (例如:MyMethod<CString> 和 MyMethod<int>) 如果鏈接器透過 COMDAT 折迭將這兩個具現化合併成單一函式,則方法會相同。 如果鏈接器無法合併這兩個具現化,則這兩個用戶層級函式會顯示為一個 DkmNativeInstructionSymbol。

public ref class DkmNativeInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmNativeInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
class DkmNativeInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[System.Runtime.InteropServices.Guid("0eb834ca-c591-449c-66ad-e016093977d2")]
public class DkmNativeInstructionSymbol : Microsoft.VisualStudio.Debugger.Symbols.DkmInstructionSymbol
[<System.Runtime.InteropServices.Guid("0eb834ca-c591-449c-66ad-e016093977d2")>]
type DkmNativeInstructionSymbol = class
    inherit DkmInstructionSymbol
Public Class DkmNativeInstructionSymbol
Inherits DkmInstructionSymbol
繼承
DkmNativeInstructionSymbol
屬性

屬性

Module

DkmModule 類別代表程式代碼組合 (例如:dll 或 exe) ,也就是或一次載入一或多個進程。 DkmModule 類別是符號 API 的中央物件,而且是 1:1,而符號處理程式會表示載入的內容。 如果程式代碼組合載入三個不同的進程 (或相同的進程,但有三個不同的基位址或三個不同的應用程式域) 但符號處理程式會將這兩者視為相同,則只有一個模組物件。

(繼承來源 DkmInstructionSymbol)
RuntimeType

運行時間識別碼段的執行環境。 發送器會使用運行時間標識碼來決定要分派的監視。 請注意,運行時間標識符 Guid 的排序稍微重要,這表示在仲裁期間,哪個運行時間會取得第一次。 因此,如果想要宣告建置在CLR上的新運行時間實例,運行時間標識碼應該小於 DkmRuntimeId.Clr。

(繼承來源 DkmInstructionSymbol)
RVA

Module 中 InstructionPointer 的 RVA。

TagValue

DkmInstructionSymbol 是抽象基類。 這個列舉表示這個對像是實例的衍生類別。

(繼承來源 DkmInstructionSymbol)

方法

Bind(DkmModuleInstance)

將指令符號系結至特定模組實例。 指令符號會連線到 DkmModule,而不是 DkmModuleInstance,因此它不會繫結至特定進程、應用程式域或模組基位址。

(繼承來源 DkmInstructionSymbol)
Create(DkmModule, UInt32)

Create 新的 DkmNativeInstructionSymbol 物件實例。

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)
GetNativeInstructionMetadataCallback(DkmInstructionAddress)

將地址資訊傳回至原生偵錯監視器。

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)
GetSteppingNativeInstructionMetadata(DkmModuleInstance, DkmInstructionAddress)

由原生 DM 呼叫,以擷取指示的相關數據,以決定應該如何逐步執行此指令。

位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引進。

GetSteppingRanges(DkmModuleInstance, DkmInstructionAddress, DkmSteppingRangeBoundary, Boolean)

查詢符號提供者,以判斷基底偵錯監視器應該逐步執行以實作步驟的指示範圍。

位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引進。

GetSteppingRanges(DkmSteppingRangeBoundary, Boolean)

查詢符號提供者,以判斷基底偵錯監視器應該逐步執行以實作步驟的指示範圍。

位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。

(繼承來源 DkmInstructionSymbol)
GetSteppingRanges(DkmWorkList, DkmModuleInstance, DkmInstructionAddress, DkmSteppingRangeBoundary, Boolean, DkmCompletionRoutine<DkmGetSteppingRangesAsyncResult>)

查詢符號提供者,以判斷基底偵錯監視器應該逐步執行以實作步驟的指示範圍。

這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。

位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引進。

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)

適用於