核心介面

下列介面是使用來擴充偵錯工具的核心介面 Visual Studio SDK 。

討論

這些介面主要是用來建立 debug engine (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 表示一組程式碼內容的列舉。

核心伺服器

這些介面代表正在偵錯工具的電腦。 這些都是由執行, Visual Studio 但可由 debug 引擎來呼叫。

介面 實作為 描述
IDebugCoreServer2 VS 提供對埠和埠供應商的存取,以及電腦的相關資訊。
IDebugCoreServer3 VS 表示支援遠端偵錯的 IDebugCoreServer2

Debug 引擎

這些介面代表調試引擎和其相關聯的事件。

介面 實作為 描述
IDebugEngine2 DE 表示自訂的 debug engine。
IDebugEngine3 DE 表示支援載入符號、JustMyCode 和例外狀況的自訂偵錯工具引擎。
IDebugEngineCreateEvent2 DE 由 DE 的每個新實例傳送,表示它已經準備好處理偵錯工具。
IDebugEngineLaunch2 DE 表示支援啟動程式的自訂偵錯工具引擎。
IDebugProgramEngines2 DE、PS 表示處理多個 debug 引擎的程式節點。
IDebugQueryEngine2 DE 提供一種方法,讓 SDM 從執行緒、程式或堆疊框架取得偵測引擎的介面。

這些介面表示檔 (原始檔) 及其相關聯的專案。

介面 實作為 描述
IDebugActivateDocumentEvent2 DE 由 DE 傳送,要求要開啟的檔。
IDebugDisassemblyStream2 DE 代表檔中拆解指令的資料流程。
IDebugDocument2 VS、DE 表示由 DE 提供的檔,指定名稱和類別識別碼 (CLSID) 。
IDebugDocumentChecksum2 DE、EE 表示 debug 檔的總和檢查碼,並且可在元件之間傳遞總和檢查碼。
IDebugDocumentContext2 VS、DE 表示檔內容,這是檔中對應至特定語句和程式碼內容的位置。
IDebugDocumentPosition2 VS、DE 代表檔內的一般位置。
IDebugDocumentPositionOffset2 VS 以字元位移表示原始檔中的位置。
IDebugDocumentText2 VS、DE 代表衍生自 IDebugDocument2) 的 DE (所提供的文字檔,並提供實際的文字。
IDebugDocumentTextEvents2 DE 由 DE 傳送,以指定記憶體中原始程式檔的變更。

事件

這些介面代表在 DE 和會話 debug manager (SDM) 之間傳送的所有事件。

介面 實作為 描述
IDebugActivateDocumentEvent2 DE 由 DE 傳送,要求要開啟的檔。
IDebugBeforeSymbolSearchEvent2 DE Debug engine (DE) 會將這個介面傳送至會話 debug manager (SDM) ,在符號載入期間設定狀態列訊息。
IDebugBreakEvent2 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 或 port 傳送。
IDebugProcessDestroyEvent2 DE、PS 當進程終結時,由 DE 或 port 傳送。
IDebugProgramCreateEvent2 DE、PS 當程式建立時由 DE 或 port 傳送。
IDebugProgramDestroyEvent2 DE、PS 當程式損毀時,由 DE 或 port 傳送。
IDebugProgramDestroyEventFlags2 DE Visual Studio當您結束 debug 會話時,可讓 debug engine 覆寫 UI 的預設行為。
IDebugProgramNameChangedEvent2 DE 當程式的名稱變更時,從 debug engine 傳送 (DE) 至會話 debug manager (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 或 port 傳送。
IDebugProcessDestroyEvent2 DE、PS 當進程終結時,由 DE 或 port 傳送。
IDebugProcessEx2 PS 表示必須追蹤哪些會話附加至該進程的進程。
IEnumDebugProcesses2 PS 表示埠上一組處理常式的列舉。

程式

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

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

屬性

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

介面 實作為 描述
IDebugCustomViewer EE 表示可以自訂方式顯示其值的 IDebugProperty2
IDebugProperty2 DE 代表堆疊框架、檔或運算式評估結果的值。
IDebugProperty3 DE 表示支援任意長字串的 IDebugProperty2
IDebugPropertyCreateEvent2 DE IDebugProperty2 介面所代表的新屬性 () 建立時,由 DE 傳送。
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 執行存取權的屬性。

另請參閱