核心介面
下列介面是使用 Visual Studio SDK 擴充調試程式的核心介面。
討論
這些介面主要用於建立偵錯引擎 (DE)。 這些類別會依類別來組織:
-
可以實作介面的實體如下:
偵錯引擎 (DE)
港口供應商(PS)
運算式評估工具 (EE)
Visual Studio (VS)
中斷點
這些介面與斷點的實作和追蹤有關。
介面 | 實作者 | 描述 |
---|---|---|
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 實作的存取權。 |