다음을 통해 공유


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 형식에서는 다음과 같은 멤버를 노출합니다.

속성

  이름 설명
Public 속성 AttachResult 연결된 엔진이 실패했는지 여부를 나타내는 결과를 가져옵니다.
Public 속성 Collection Engines 컬렉션을 가져옵니다.
Public 속성 DTE 최상위 확장성 개체를 가져옵니다.
Public 속성 ID 디버깅 엔진의 ID GUID를 가져옵니다.
Public 속성 Name Engine 개체의 이름을 가져옵니다.
Public 속성 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

참고 항목

참조

EnvDTE80 네임스페이스

Engines