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 对象用于指定要在给定进程中调试的程序类型。 例如,如果要在进程内只调试托管代码,则使用“公共语言运行时”调试引擎附加到进程。 如果要同时调试进程的托管部分和未托管部分,请使用“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 附加到调试引擎进程时,将会自动引用这两个引擎,但是在自动化代码中,必须通过使用它们的唯一标识符 GUID 来引用它们。SQL Server 2005 的 GUID 是 {1202F5B4-3522-4149-BAD8-58B2079D704F},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