Debugger2 インターフェイス
Debugger2 オブジェクトを使用すると、デバッガーの状態やデバッグ中のプログラムの状態を問い合わせたり、操作したりできます。 Debugger2 オブジェクトは、Debugger オブジェクトよりも優先されます。
名前空間: EnvDTE80
アセンブリ: EnvDTE80 (EnvDTE80.dll 内)
構文
'宣言
<GuidAttribute("8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")> _
Public Interface Debugger2 _
Inherits Debugger
[GuidAttribute("8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")]
public interface Debugger2 : Debugger
[GuidAttribute(L"8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")]
public interface class Debugger2 : Debugger
[<GuidAttribute("8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")>]
type Debugger2 =
interface
interface Debugger
end
public interface Debugger2 extends Debugger
Debugger2 型で公開されるメンバーは以下のとおりです。
プロパティ
名前 | 説明 | |
---|---|---|
AllBreakpointsLastHit | (Debugger から継承されます。) | |
AllBreakpointsLastHit | 最後に同時にヒットした、バインドされているブレークポイントのコレクションを取得します。 | |
BreakpointLastHit | (Debugger から継承されます。) | |
BreakpointLastHit | 最新のブレークポイント ヒットを取得します。 | |
Breakpoints | (Debugger から継承されます。) | |
Breakpoints | ブレークポイントのコレクションを取得します。 | |
CurrentMode | (Debugger から継承されます。) | |
CurrentMode | IDE のコンテキストのデバッガーの現在のモードを取得します。 | |
CurrentProcess | (Debugger から継承されます。) | |
CurrentProcess | アクティブなプロセスを取得するか、または設定します。 | |
CurrentProgram | (Debugger から継承されます。) | |
CurrentProgram | アクティブなプログラムを設定するか、または返します。 | |
CurrentStackFrame | (Debugger から継承されます。) | |
CurrentStackFrame | 現在のスタック フレームを取得するか、または設定します。 | |
CurrentThread | (Debugger から継承されます。) | |
CurrentThread | デバッグ中の現在のスレッドを取得するか、または設定します。 | |
DebuggedProcesses | (Debugger から継承されます。) | |
DebuggedProcesses | 現在デバッグ中のプロセスのリストを取得します。 | |
DTE | (Debugger から継承されます。) | |
DTE | トップレベルの機能拡張オブジェクトを取得します。 | |
HexDisplayMode | (Debugger から継承されます。) | |
HexDisplayMode | 式を 16 進形式と 10 進形式のどちらの形式で出力するかを示す値を取得または設定します。 | |
HexInputMode | (Debugger から継承されます。) | |
HexInputMode | 式を 16 進形式と 10 進形式のどちらの形式で評価するかを示す値を取得または設定します。 | |
Languages | (Debugger から継承されます。) | |
Languages | デバッガーがサポートしている言語のリストを取得します。 | |
LastBreakReason | (Debugger から継承されます。) | |
LastBreakReason | 最後にプログラムが中断されたときの原因を取得します。プログラムが実行中の場合は、DBG_REASON_NONE を返します。 | |
LocalProcesses | (Debugger から継承されます。) | |
LocalProcesses | このコンピューター上で現在実行されているプロセスのリストを取得します。 | |
Parent | (Debugger から継承されます。) | |
Parent | Debugger2 オブジェクト (DTE2) の直接の親オブジェクトを取得します。 | |
Transports | サポートされているデバッグ トランスポートのコレクションを取得します。 |
このページのトップへ
メソッド
名前 | 説明 | |
---|---|---|
Break(Boolean) | (Debugger から継承されます。) | |
Break(Boolean) | 指定されたプロセスの現在の状態を解析するために、そのプロセスの実行を一時中断します。 | |
DetachAll() | (Debugger から継承されます。) | |
DetachAll() | アタッチされたすべてのプログラムからデタッチします。 | |
ExecuteStatement(String, Int32, Boolean) | (Debugger から継承されます。) | |
ExecuteStatement(String, Int32, Boolean) | 指定されたステートメントを実行します。TreatAsExpression フラグが true の場合、文字列は式として解釈され、コマンド ウィンドウ に出力が送られます。 | |
GetExpression(String, Boolean, Int32) | (Debugger から継承されます。) | |
GetExpression(String, Boolean, Int32) | 現在のスタック フレームに基づく式を評価します。式が解析はできるが評価できない場合、オブジェクトは返されますが、そのオブジェクトに有効な値は含まれていません。 | |
GetExpression2 | 現在のスタック フレームに基づく式を評価します。式が解析はできるが評価できない場合、オブジェクトは返されますが、そのオブジェクトに有効な値は含まれていません。 | |
GetProcesses | 呼び出し元がリモート コンピューターからプロセスのコレクションを取得できるようにします。 | |
Go(Boolean) | (Debugger から継承されます。) | |
Go(Boolean) | 現在のステートメントからプログラムを実行します。 | |
RunToCursor(Boolean) | (Debugger から継承されます。) | |
RunToCursor(Boolean) | プログラムを、ソース ファイルの現在のカーソル位置まで実行します。 | |
SetNextStatement() | (Debugger から継承されます。) | |
SetNextStatement() | 現在のソース ファイルのカーソル位置に従って、次に実行する命令を設定します。 | |
StepInto(Boolean) | (Debugger から継承されます。) | |
StepInto(Boolean) | 可能な場合は、次の関数呼び出しにステップ インします。 | |
StepOut(Boolean) | (Debugger から継承されます。) | |
StepOut(Boolean) | 現在の関数からステップ アウトします。 | |
StepOver(Boolean) | (Debugger から継承されます。) | |
StepOver(Boolean) | 次の関数呼び出しにステップ オーバーします。 | |
Stop(Boolean) | (Debugger から継承されます。) | |
Stop(Boolean) | デバッグを中断し、アタッチされたすべてのプロセスを終了またはデタッチします。 | |
TerminateAll() | (Debugger から継承されます。) | |
TerminateAll() | 現在実行されているデバッグ プロセスをすべて終了します。 | |
WriteMinidump | プログラムを中断モードで実行している場合、この関数は現在のデバッグ セッションのミニダンプを作成します。 |
このページのトップへ
解説
デバッガーは、次の例に示すように、DTE2 オブジェクトの Debugger プロパティから利用できます。 各開発環境で 1 つのデバッガー オブジェクトを利用できます。
例
Imports EnvDTE
Imports System.Diagnostics
Public Module Module1
'This function returns true if the debugger is actively debugging.
Function IsDebugging() As Boolean
Dim debugger As EnvDTE80.Debugger2
debugger = DTE2.Debugger
If (debugger Is Nothing) Then
MsgBox("Debugger doesn't exist! Fatal error.")
IsDebugging = false
Else
IsDebugging = (debugger.CurrentMode <> _
dbgDebugMode.dbgDesignMode)
End If
End Function
End Module
// The following C++ program can be run from the command line.
// It detects whether an instance of Visual Studio is currently
// running,and if so, prints a message stating whether its debugger
// is actively debugging.
#include <stdio.h>
#import "dte.olb" raw_interfaces_only named_guids
using namespace EnvDTE80;
int main(void)
{
int nRet = 0;
CoInitialize(NULL);
IUnknownPtr pUnk;
GetActiveObject(CLSID_DTE, NULL, &pUnk);
if (pUnk == NULL) {
printf ("No instance of Visual Studio is running.\n");
}
else {
_DTEPtr pDTE = pUnk;
if (pDTE) {
DebuggerPtr pDebugger;
if (SUCCEEDED(pDTE->get_Debugger(&pDebugger2)) &&
pDebugger2
!= NULL){
dbgDebugMode mode;
if (SUCCEEDED(pDebugger2->get_CurrentMode(&mode))) {
if (mode != dbgDesignMode) {
printf("Debugger is active.\n");
nRet = 1;
}
else {
printf("Debugger is not active.\n");
}
}
}
}
}
CoUninitialize();
return nRet;
}