Engine 介面
偵錯引擎,用以對應至程式碼類型。
命名空間: EnvDTE80
組件: EnvDTE80 (在 EnvDTE80.dll 中)
語法
'宣告
<GuidAttribute("8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")> _
Public Interface Engine
[GuidAttribute("8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")]
public interface Engine
[GuidAttribute(L"8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")]
public interface class Engine
[<GuidAttribute("8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")>]
type Engine = interface end
public interface Engine
Engine 類型會公開下列成員。
屬性
名稱 | 描述 | |
---|---|---|
AttachResult | 取得結果,指出附加的引擎是否失敗。 | |
Collection | 取得 Engines 集合。 | |
DTE | 取得最上層的擴充性物件。 | |
ID | 取得偵錯引擎的 ID GUID。 | |
Name | 取得 Engine 物件的名稱。 | |
Parent | 取得 Engine 物件的直屬父物件。 |
回頁首
備註
用以判斷偵錯工具如何根據程式碼進行偵錯。 這會對應至 [附加至處理序] 視窗。
Engine 物件是用以指定在特定處理序中,要對哪一種程式類型進行偵錯。 例如,如果您只想要對某一處理序內的 Managed 程式碼進行偵錯,請使用 Common Language Runtime 偵錯引擎附加至該處理序中。如果您想要同時偵錯某一處理序中的 Managed 和 Unmanaged 部分,請以 Interop COM+ 引擎附加。
注意事項 |
---|
當您錄製巨集,並使用 Transact-SQL 偵錯引擎附加至偵錯程序時,巨集會傳回相同引擎名稱的兩個不同參考。例如,dbgeng(0) = transprt.Engines.Item("T-SQL") 和 dbgeng(1) = transprt.Engines.Item("T-SQL")。發生這種情況是因為在 Visual Studio 中實際上有兩個基礎Transact-SQL偵錯引擎: 一個用於 SQL Server 2005 偵錯引擎,另一個用於 SQL Server 2000 和 SQL Server 7 的 Transact-SQL 偵錯引擎。透過 UI 附加至偵錯引擎程序時,會自動參考這兩個偵錯引擎,但在 Automation 程式碼中,必須使用唯一識別項 GUID 個別參考它們。SQL Server 2005 的 GUID 是 {1202F5B4-3522-4149-BAD8-58B2079D704F},而 SQL Server 2000 和 SQL Server 7 Transact-SQL 偵錯引擎的 GUID 是 {5AF6F83C-B555-11D1-8418-00C04FA302A1}。所以上述呼叫應該分別變更為 dbgeng(0) = trans.Engines.Item("{1202F5B4-3522-4149-BAD8-58B2079D704F}") 和 dbgeng(1) = trans.Engines.Item("{1202F5B4-3522-4149-BAD8-58B2079D704F}")。 |
範例
' Macro code.
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Imports Microsoft.VisualBasic.ControlChars
Public Module Module1
Sub ShowDefaultEngines()
Dim dbg As EnvDTE80.Debugger2
dbg = DTE.Debugger
dbg.HexDisplayMode = True
Dim transport As EnvDTE80.Transport
transport = dbg.Transports.Item("default")
Dim engine As EnvDTE80.Engine
Dim strEngineList As String
For Each engine In transport.Engines
strEngineList = strEngineList + engine.Name + ", " + _
engine.ID + ", " + engine.AttachResult.ToString + NewLine
Next
MsgBox(strEngineList)
End Sub
End Module