核心介面

下列介面是使用 Visual Studio SDK 擴充調試程式的核心介面。

討論

這些介面主要用於建立偵錯引擎 (DE)。 這些類別會依類別來組織:

中斷點

這些介面與斷點的實作和追蹤有關。

介面 實作者 描述
IDebugBoundBreakpoint2 DE 表示系結至記憶體位置的斷點。
IDebugBreakpointBoundEvent2 DE 當斷點系結至記憶體位置時,DE 會傳送。
IDebugBreakpointChecksumRequest2 VS 表示斷點要求的檔總和檢查碼。
IDebugBreakpointErrorEvent2 DE 當斷點無法系結至記憶體位置時,DE 會傳送。
IDebugBreakpointEvent2 DE 當到達斷點時,由 DE 傳送。
IDebugBreakpointRequest2 VS 表示斷點的要求;用於建立暫止斷點。
IDebugBreakpointRequest3 VS 表示斷點的要求;用於建立暫止斷點。
IDebugBreakpointResolution2 DE 表示用來系結斷點的資訊。
IDebugBreakpointUnboundEvent2 DE 當斷點從記憶體位置解除系結時,由 DE 傳送。
IDebugErrorBreakpoint2 DE 表示無效的斷點(由 IDebugBreakpointErrorEvent2傳回)。
IDebugErrorBreakpointResolution2 DE 表示無效斷點的解析資訊。
IDebugFunctionPosition2 DE 表示設定斷點之函式中的位置。
IDebugPendingBreakpoint2 DE 表示要系結的斷點;用於建立系結斷點。
IEnumDebugBoundBreakpoints2 DE 表示一組系結斷點的列舉。
IEnumDebugErrorBreakpoints2 DE 表示一組無法系結至記憶體位置之斷點的列舉。

內容

這些介面代表正在偵錯的程式內的各種內容。

介面 實作者 描述
IDebugCodeContext2 DE 表示程式代碼指令的起始位置。
IDebugCodeContext3 DE 擴充 IDebugCodeContext2 介面,以啟用模組和進程介面的擷取。
IDebugDocumentContext2 VS、DE 表示檔中的位置。
IDebugExpressionContext2 DE 表示評估表達式的內容。
IDebugMemoryContext2 DE 表示位元組集合記憶體中的起始位置。
IDebugStackFrame2 DE 表示斷點或例外狀況的堆疊框架內容。
IDebugStackFrame3 DE 表示斷點或例外狀況的堆疊框架內容。
IEnumDebugCodeContexts2 DE 表示一組程式代碼內容的列舉。

Core Server

這些介面代表正在偵錯程序的計算機。 這些是由 Visual Studio 實作,但可由偵錯引擎呼叫。

介面 實作者 描述
IDebugCoreServer2 VS 提供埠和埠供應商的存取權,以及計算機的相關信息。
IDebugCoreServer3 VS 代表 支持遠程偵錯的 IDebugCoreServer2

偵錯引擎

這些介面代表偵錯引擎及其相關聯的事件。

介面 實作者 描述
IDebugEngine2 DE 表示自定義偵錯引擎。
IDebugEngine3 DE 表示支援載入符號、JustMyCode 和例外狀況的自定義偵錯引擎。
IDebugEngineCreateEvent2 DE 由 DE 的每個新實例傳送,指出它已準備好處理偵錯工作。
IDebugEngineLaunch2 DE 表示支持啟動程式的自定義偵錯引擎。
IDebugProgramEngines2 DE、PS 表示處理多個偵錯引擎的程序節點。
IDebugQueryEngine2 DE 提供讓 SDM 從線程、程式或堆疊框架取得偵錯引擎介面的方法。

文件​​

這些介面代表檔(原始程序檔)及其相關聯的元素。

介面 實作者 描述
IDebugActivateDocumentEvent2 DE 由 DE 傳送,要求開啟檔。
IDebugDisassemblyStream2 DE 表示檔反組譯指令的數據流。
IDebugDocument2 VS、DE 表示 DE 所提供的檔案,指定名稱和類別識別碼 (CLSID)。
IDebugDocumentChecksum2 DE、EE 表示偵錯檔的總和檢查碼,並啟用在元件之間傳遞總和檢查碼。
IDebugDocumentContext2 VS、DE 表示文件內容、對應至特定語句和程式代碼內容之檔內的位置。
IDebugDocumentPosition2 VS、DE 表示檔中的一般位置。
IDebugDocumentPositionOffset2 VS 表示來源檔案中的位置做為字元位移。
IDebugDocumentText2 VS、DE 代表 DE 提供的文字檔(衍生自 IDebugDocument2),提供實際文字。
IDebugDocumentTextEvents2 DE 由 DE 傳送,以指定記憶體中來源檔案的變更。

事件

這些介面代表 DE 與會話偵錯管理員 (SDM) 之間傳送的所有事件。

介面 實作者 描述
IDebugActivateDocumentEvent2 DE 由 DE 傳送,要求開啟檔。
IDebugBeforeSymbolSearchEvent2 DE 偵錯引擎 (DE) 會將這個介面傳送至會話偵錯管理員 (SDM),以在符號載入期間設定狀態列訊息。
IDebugBreakEvent2 DE DE 在程式中斷完成時傳送。
IDebugBreakpointBoundEvent2 DE 當斷點系結時,由 DE 傳送。
IDebugBreakpointErrorEvent2 DE 當斷點無法系結時,由 DE 傳送。
IDebugBreakpointEvent2 DE 當到達斷點時,由 DE 傳送。
IDebugBreakpointUnboundEvent2 DE 當斷點未系結時,由 DE 傳送。
IDebugCanStopEvent2 DE 由 DE 傳送,以判斷它是否應該在特定位置停止。
IDebugDocumentTextEvents2 DE 由 DE 傳送,以指定記憶體中來源檔案的變更。
IDebugEngineCreateEvent2 DE 由 DE 的每個新實例傳送,指出它已準備好處理偵錯工作。
IDebugEntryPointEvent2 DE 由 DE 傳送,表示正在偵錯的程式已準備好執行第一個指令。
IDebugErrorEvent2 DE 其他事件介面所使用的介面,可能會傳回錯誤,以提供人類可讀取的錯誤訊息。
IDebugEvent2 DE、PS 衍生所有其他事件介面的基底介面。
IDebugEventCallback2 VS 表示 SDM 所實作的介面,該介面會傳送事件(以實作特定事件介面的物件表示)。
IDebugExceptionEvent2 DE 當偵錯的程式發生例外狀況時,DE 會傳送。
IDebugExpressionEvaluationCompleteEvent2 DE 當異步表達式評估完成時,DE 會傳送。
IDebugFindSymbolEvent2 已過時。 請勿使用。
IDebugInterceptExceptionCompleteEvent2 DE DE 在處理已攔截的例外狀況時傳送。
IDebugLoadCompleteEvent2 DE 當程式完成載入時,DE 會傳送。
IDebugMessageEvent2 DE 由 DE 傳送,讓 IDE 向使用者顯示訊息訊息。
IDebugModuleLoadEvent2 DE 載入或卸除模組時,DE 會傳送。
IDebugNoSymbolsEvent2 DE 向 Visual Studio 調試程式 UI 發出訊號,警告使用者無法找到已啟動可執行檔的符號。
IDebugOutputStringEvent2 DE 由 DE 傳送,讓 IDE 顯示任意字串。
IDebugPortEvents2 VS、DE 由埠傳送,以將埠事件傳達給任何接聽程式。
IDebugProcessCreateEvent2 DE、PS 建立進程時,由 DE 或埠傳送。
IDebugProcessDestroyEvent2 DE、PS 當進程損毀時,DE 或埠傳送。
IDebugProgramCreateEvent2 DE、PS 建立程式時,由 DE 或埠傳送。
IDebugProgramDestroyEvent2 DE、PS 當程式損毀時,DE 或埠傳送。
IDebugProgramDestroyEventFlags2 DE 當您結束偵錯會話時,可讓偵錯引擎覆寫Visual Studio UI的預設行為。
IDebugProgramNameChangedEvent2 DE 當程式名稱變更時,從偵錯引擎 (DE) 傳送至會話偵錯管理員 (SDM)。
IDebugPropertyCreateEvent2 DE 建立新的屬性時,由 DE 傳送(由 IDebugProperty2 介面表示)。
IDebugPropertyDestroyEvent2 DE 當屬性被終結時,由 DE 傳送。
IDebugReturnValueEvent2 DE DE 在逐步卸除或越過函式時傳送,以便正確顯示傳回值。
IDebugSettingsCallback2 VS 可讓偵錯引擎從遠端讀取計量設定。
IDebugStepCompleteEvent2 DE 當逐步執行、結束或離開指令時,由 DE 傳送。
IDebugSymbolSearchEvent2 DE 由 DE 傳送,指出模組載入符號的成功或失敗。
IDebugThreadCreateEvent2 DE 建立線程時,由 DE 傳送。
IDebugThreadDestroyEvent2 DE 當線程終結時,DE 會傳送。
IDebugThreadNameChangedEvent2 DE 當線程變更其名稱時,由 DE 傳送。

運算式

這些介面代表要在特定內容中評估的表達式。

介面 實作者 描述
IDebugExpression2 DE 表示要評估的表達式。 從 IDebugExpressionContext2 介面取得。
IDebugExpressionContext2 DE 表示評估表達式的內容。 從 IDebugStackFrame2 介面取得。
IDebugExpressionEvaluationCompleteEvent2 DE 當異步表達式評估完成時,DE 會傳送。

記憶體

這些介面代表記憶體中的位元組序列。

介面 實作者 描述
IDebugMemoryBytes2 DE 表示記憶體中可讀取或寫入的位元組序列。
IDebugMemoryContext2 DE 表示位元組序列記憶體中的位置。

模組

這些介面代表對應至可執行檔或 .DLL 檔案的模組。

介面 實作者 描述
IDebugModule2 DE 表示單一可執行檔或 DLL。
IDebugModule3 DE 代表 支援符號的 IDebugModule2
IDebugModuleLoadEvent2 DE 載入或卸除模組時,DE 會傳送。
IDebugSourceServerModule DE 表示 PDB 檔案中包含的來源伺服器資訊。
IEnumDebugModules2 DE 代表一組 IDebugProgram2 已知模組的列舉。

連接埠

這些介面代表埠和埠供貨商。

介面 實作者 描述
IDebugDefaultPort2 VS、PS 表示本機電腦上的預設埠。
IDebugFirewallConfigurationCallback2 VS 啟用使用DCOM的偵錯引擎,要求Visual Studio UI確定防火牆不會封鎖遠端偵錯。
IDebugPort2 VS、PS 表示埠。
IDebugPortEvents2 PS 由埠傳送,以將埠事件傳達給任何接聽程式。
IDebugPortEx2 PS 表示可以啟動和終止進程的埠。
IDebugPortNotify2 PS 用來向埠註冊和取消註冊程式;允許埠追蹤目前正在偵錯的程式。
IDebugPortPicker PS 表示用於選取埠的自定義UI。
IDebugPortRequest2 VS 表示將建立或找到新埠之埠的要求。
IDebugPortSupplier2 PS 表示埠的供應商。
IDebugPortSupplier3 PS 代表埠的供應商,可保存其所建立之埠的相關信息(儲存至磁碟)。
IDebugPortSupplierDescription2 PS 可讓 Visual Studio UI 在 [附加至行程] 對話方塊的 [傳輸資訊] 區段內顯示文字。
IDebugWindowsComputerPort2 VS 允許查詢目標計算機的相關信息。
IEnumDebugPorts2 VS、PS 表示一組埠的列舉。
IEnumDebugPortSuppliers2 VS 表示一組埠供應商的列舉。

程序

這些介面代表進程,這是包含一或多個程式的單一可執行檔。

介面 實作者 描述
IDebugProcess2 PS、DE 表示在電腦上執行的進程。
IDebugProcess3 PS、DE 表示主動支援偵錯的進程(用來取代 IDebugProgram2 介面上的 Step、Continue 和 Execute 方法)。
IDebugProcessCreateEvent2 DE、PS 建立進程時,由 DE 或埠傳送。
IDebugProcessDestroyEvent2 DE、PS 當進程損毀時,DE 或埠傳送。
IDebugProcessEx2 PS 表示必須追蹤其附加會話的進程。
IEnumDebugProcesses2 PS 表示埠上一組進程的列舉。

程式

這些介面代表程式、不一定對應至實體可執行檔或模組的執行邏輯單位。

介面 實作者 描述
IDebugEngineProgram2 DE 代表 IDebugProgram2 ,需要與同時偵錯的其他程式一起運作。
IDebugProgram2 DE、PS 表示執行的邏輯單位。
IDebugProgramCreateEvent2 DE、PS 建立程式時,由 DE 或埠傳送。
IDebugProgramDestroyEvent2 DE、PS 當程式損毀時,DE 或埠傳送。
IDebugProgramEngines2 DE、PS 代表 可由多個偵錯引擎處理的 IDebugProgramNode2
IDebugProgramEx2 PS 代表 IDebugProgram2 ,必須能夠追蹤其附加的會話。
IDebugProgramHost2 DE、PS 代表 IDebugProgram2 ,可傳回其執行中進程的相關信息。
IDebugProgramNode2 DE、PS 表示可以偵錯的程式。
IDebugProgramNodeAttach2 DE、PS 允許程序節點收到嘗試附加至相關聯程式的通知。
IDebugProgramProvider2 DE 提供讓 SDM 查詢 DE 的方式,瞭解該 DE 所控制的程式。
IDebugProgramPublisher2 VS 由 DES 用來向 SDM 註冊程式,以顯示其正在偵錯。
IDebugProviderProgramNode2 DE、PS 代表 可以跨線程或進程界限封送處理介面的 IDebugProgramNode2
IEnumDebugPrograms2 DE、PS 表示一組程式的列舉。

屬性

這些介面代表屬性、與特定內容相關聯的值,通常是表達式評估的結果。

介面 實作者 描述
IDebugCustomViewer EE 代表 可以自定義方式顯示其值的 IDebugProperty2
IDebugProperty2 DE 表示堆疊框架、檔或表達式評估結果的值。
IDebugProperty3 DE 表示 支援任意長字串的 IDebugProperty2
IDebugPropertyCreateEvent2 DE 建立新的屬性時,由 DE 傳送(由 IDebugProperty2 介面表示)。
IDebugPropertyDestroyEvent2 DE 當屬性被終結時,由 DE 傳送。
IDebugReference2 DE 表示屬性的參考,該屬性可以存在於任何特定的堆疊框架之外。
IEnumDebugPropertyInfo2 DE 表示一組描述變數、緩存器、參數和表達式之一組 DEBUG_PROPERTY_INFO 結構的列舉。
IEnumDebugReferenceInfo2 DE 表示一組 DEBUG_REFERENCE_INFO 結構的列舉。

堆疊框架

這些介面代表堆疊框架,也就是發生斷點或例外狀況的內容。

介面 實作者 描述
IDebugStackFrame2 DE 表示發生斷點或例外狀況的內容。
IDebugStackFrame3 DE 代表 可以處理攔截例外狀況的IDebugStackFrame2
IEnumCodePaths2 DE 代表一組 CODE_PATH 結構的列舉,指定用來抵達特定堆疊框架的函式呼叫序列。
IEnumDebugFrameInfo2 DE 表示一組 FRAMEINFO 結構的列舉,其描述堆疊框架。

執行緒

這些介面代表線程及其相關聯的事件。

介面 實作者 描述
IDebugThread2 DE 表示執行的線程。
IDebugThreadCreateEvent2 DE 建立線程時,由 DE 傳送。
IDebugThreadDestroyEvent2 DE 當線程終結時,DE 會傳送。
IDebugThreadNameChangedEvent2 DE 當線程變更其名稱時,由 DE 傳送。
IEnumDebugThreads2 DE 表示一組線程的列舉。

類型可視化檢視

這些介面提供類型可視化檢視的支援。 這些介面通常是由表達式評估工具實作。

介面 實作者 描述
IEEDataStorage EE 表示要呈現給類型可視化檢視的位元組陣列。
IPropertyProxyEESide EE 提供方法來存取要傳遞至型別可視化檢視的數據。
IPropertyProxyProvider EE 表示屬性,提供 IPropertyProxyEESide 實作的存取權。

另請參閱