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")과 같습니다. 실제로 두 개의 내부 Transact-SQL디버깅 엔진, 즉 SQL Server 2000 및 SQL Server 7용 SQL Server 2005 디버깅 엔진과 Transact-SQL 디버깅 엔진이 Visual Studio에 있기 때문에 이 문제가 발생합니다. UI를 통해 디버깅 엔진 프로세스에 연결하는 경우 자동으로 두 엔진이 모두 참조되지만 자동화 코드에서는 고유 식별자 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