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 オブジェクトは、特定のプロセスでデバッグの対象となるプログラムの種類を指定する場合に使用されます。たとえば、プロセス内のマネージ コードだけをデバッグする場合、"Common Language Runtime" デバッグ エンジンを使用してプロセスにアタッチします。プロセスのマネージ コードとアンマネージ コードの両方をデバッグする場合は、"Interop COM+" エンジンでアタッチします。
[!メモ]
マクロを記録し、Transact-SQL デバッグ エンジンを使用してデバッグ プロセスにアタッチすると、そのマクロは同じエンジン名に対して 2 つの個別の参照を返します。たとえば、dbgeng(0) = transprt.Engines.Item("T-SQL") や dbgeng(1) = transprt.Engines.Item("T-SQL") などです。これは、実際には Visual Studio に、基になる 2 つの Transact-SQL デバッグ エンジンがあるために発生します。つまり、1 つは SQL Server 2005 デバッグ エンジンで、もう 1 つは、SQL Server 2000 と SQL Server 7 用の Transact-SQL デバッグ エンジンです。いずれも、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