核心介面
如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件。
下列介面會使用擴充偵錯工具的核心介面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 | 表示列舉型別資料集的程式碼內容。 |
核心伺服器
這些介面代表一個程式正在偵錯的電腦。 這些由實作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 | 傳送 IDE 顯示 DE 的任意字串。 |
IDebugPortEvents2 | VS DE | 透過連接埠傳送給任何接聽程式通訊連接埠事件。 |
IDebugProcessCreateEvent2 | DE、 PS | 在建立處理序時,由 DE 或連接埠傳送。 |
IDebugProcessDestroyEvent2 | DE、 PS | 處理程序已損毀時,由 DE 或連接埠傳送。 |
IDebugProgramCreateEvent2 | DE、 PS | 在建立程式時,由 DE 或連接埠傳送。 |
IDebugProgramDestroyEvent2 | DE、 PS | 程式已損毀時,由 DE 或連接埠傳送。 |
IDebugProgramDestroyEventFlags2 | DE | 可讓偵錯引擎,以覆寫預設行為Visual StudioUI 偵錯工作階段結束時。 |
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 StudioUI,請確定防火牆會封鎖遠端偵錯。 |
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介面)。 |
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 | 提供方法來查詢有關程式受到該 DE DE SDM。 |
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實作。 |