Engine Interface

A debug engine that is used to map to code type.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)


<GuidAttribute("8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")> _
Public Interface Engine
public interface Engine
public interface class Engine
type Engine =  interface end
public interface Engine

The Engine type exposes the following members.


  Name Description
Public property AttachResult Gets a result indicating whether an attached engine failed or not.
Public property Collection Gets the Engines collection.
Public property DTE Gets the top-level extensibility object.
Public property ID Gets the ID GUID of the debugging engine.
Public property Name Gets the name of the Engine object.
Public property Parent Gets the immediate parent object of a Engine object.



Used to determine how the debugger will debug based on the code. This corresponds to the Attach to Process window.

An Engine object is used to specify what type of programs are intended to be debugged in a given process. For example, if you want to debug only managed code inside a process, attach to the process using the "Common Language Runtime" debugging engine. If you want to debug both managed and unmanaged parts of a process, attach with the "Interop COM+" engine.


When you record a macro and attach to a debugging process using the Transact-SQL debugging engine, the macro returns two separate references to the same engine name. For example, dbgeng(0) = transprt.Engines.Item("T-SQL") and dbgeng(1) = transprt.Engines.Item("T-SQL"). This happens because there are actually two underlying Transact-SQL debugging engines in Visual Studio: one for the SQL Server 2005 debugging engine, the other for the Transact-SQL debugging engine for SQL Server 2000 and SQL Server 7. They are both automatically referenced when attaching to a debugging engine process via the UI, but in automation code, they must each be referenced by using their unique identifier GUID. The GUID for SQL Server 2005 is {1202F5B4-3522-4149-BAD8-58B2079D704F}, and the GUID for the Transact-SQL debugging engine for SQL Server 2000 and SQL Server 7 is {5AF6F83C-B555-11D1-8418-00C04FA302A1}. So the above calls should be changed to dbgeng(0) = trans.Engines.Item("{1202F5B4-3522-4149-BAD8-58B2079D704F}") and dbgeng(1) = trans.Engines.Item("{1202F5B4-3522-4149-BAD8-58B2079D704F}") respectively.


' 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
    End Sub
End Module

See Also


EnvDTE80 Namespace