Debugger3 インターフェイス
Debugger3 を使用すると、デバッガーの状態やデバッグ中のプログラムの状態を問い合わせたり、操作したりできます。Debugger3 は、Debugger2 インターフェイスおよび Debugger インターフェイスよりも優先されます。
名前空間: EnvDTE90
アセンブリ: EnvDTE90 (EnvDTE90.dll 内)
構文
'宣言
<GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")> _
Public Interface Debugger3 _
Inherits Debugger2
[GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
public interface Debugger3 : Debugger2
[GuidAttribute(L"87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
public interface class Debugger3 : Debugger2
[<GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")>]
type Debugger3 =
interface
interface Debugger2
end
public interface Debugger3 extends Debugger2
Debugger3 型で公開されるメンバーは以下のとおりです。
プロパティ
名前 | 説明 | |
---|---|---|
AllBreakpointsLastHit | (Debugger2 から継承されます。) | |
AllBreakpointsLastHit | 最後に同時にヒットした、バインドされているブレークポイントのコレクションを取得します。 | |
BreakpointLastHit | (Debugger2 から継承されます。) | |
BreakpointLastHit | 最新のブレークポイント ヒットを取得します。 | |
Breakpoints | (Debugger2 から継承されます。) | |
Breakpoints | ブレークポイントのコレクションを取得します。 | |
CurrentMode | (Debugger2 から継承されます。) | |
CurrentMode | IDE のコンテキストのデバッガーの現在のモードを取得します。 | |
CurrentProcess | (Debugger2 から継承されます。) | |
CurrentProcess | アクティブなプロセスを取得するか、または設定します。 | |
CurrentProgram | (Debugger2 から継承されます。) | |
CurrentProgram | アクティブなプログラムを設定するか、または返します。 | |
CurrentStackFrame | (Debugger2 から継承されます。) | |
CurrentStackFrame | 現在のスタック フレームを取得するか、または設定します。 | |
CurrentThread | (Debugger2 から継承されます。) | |
CurrentThread | デバッグ中の現在のスレッドを取得するか、または設定します。 | |
DebuggedProcesses | (Debugger2 から継承されます。) | |
DebuggedProcesses | デバッグ中のプロセスのリストを取得します。 | |
DTE | (Debugger2 から継承されます。) | |
DTE | トップ レベルの機能拡張オブジェクトを取得します。 | |
ExceptionGroups | デバッガーの例外設定を取得します。これらの設定では、各例外について、デバッガーが実行を中断する前にコードで例外を処理できるようにするかどうかを指定します。 | |
ForceContinue | トレースポイントまたはブレークポイントがマクロの実行を終了したときにデバッガーが中断されるか続行されるかを指定する値を、取得または設定します。既定の動作は、トレースポイントまたはブレークポイントの作成時に、ユーザーがダイアログ ボックスで設定します。このプロパティは、既定の動作の変更に使用できます。 | |
HexDisplayMode | (Debugger2 から継承されます。) | |
HexDisplayMode | 式を 16 進形式と 10 進形式のどちらの形式で出力するかを示す値を取得または設定します。 | |
HexInputMode | (Debugger2 から継承されます。) | |
HexInputMode | 式を 16 進形式と 10 進形式のどちらの形式で評価するかを示す値を取得または設定します。 | |
Languages | (Debugger2 から継承されます。) | |
Languages | デバッガーがサポートしている言語のリストを取得します。 | |
LastBreakReason | (Debugger2 から継承されます。) | |
LastBreakReason | 最後にプログラムが中断されたときの原因を取得します。プログラムが実行中の場合は、DBG_REASON_NONE を返します。 | |
LocalProcesses | (Debugger2 から継承されます。) | |
LocalProcesses | このコンピューター上で現在実行されているプロセスのリストを取得します。 | |
OnlyLoadSymbolsManually | シンボルが手動で読み込まれるか自動的に読み込まれるかを指定する値を取得します。Visual Studio のユーザーは、この設定を [オプション] ダイアログ ボックスで決定できます。Visual Studio 内でこの値を設定する方法の詳細については、「方法: シンボルの場所と読み込み動作を指定する」を参照してください。 | |
Parent | (Debugger2 から継承されます。) | |
Parent | Debugger3 オブジェクト (DTE2) の直接の親オブジェクトを取得します。 | |
SymbolCachePath | シンボル サーバーからシンボルをダウンロードするときに Visual Studio が使用するシンボル キャッシュのパスを含む文字列を取得します。シンボル キャッシュのパスは、[オプション] ダイアログ ボックスで指定できます。詳細については、「方法 : シンボル サーバーを使用する」を参照してください。 | |
SymbolPath | Visual Studio がデバッグに使用する .PDB シンボル ファイルのパスを含む文字列を取得します。Visual Studio のユーザーは、シンボル パスを [オプション] ダイアログ ボックスで指定できます。詳細については、「方法: シンボルの場所と読み込み動作を指定する」を参照してください。 | |
SymbolPathState | Visual Studio がデバッグに使用する .PDB シンボル ファイルのすべてのシンボル パスの状態を表す文字列を取得します。 | |
Transports | (Debugger2 から継承されます。) | |
Transports | サポートされているデバッグ トランスポートのコレクションを取得します。 |
このページのトップへ
メソッド
名前 | 説明 | |
---|---|---|
Break(Boolean) | (Debugger2 から継承されます。) | |
Break(Boolean) | 指定されたプロセスの現在の状態を解析するために、そのプロセスの実行を一時中断します。 | |
DetachAll() | (Debugger2 から継承されます。) | |
DetachAll() | アタッチされたすべてのプログラムからデタッチします。 | |
ExecuteStatement(String, Int32, Boolean) | (Debugger2 から継承されます。) | |
ExecuteStatement(String, Int32, Boolean) | 指定されたステートメントを実行します。 TreatAsExpression フラグが true の場合、文字列は式として解釈され、コマンド ウィンドウ に出力が送られます。 | |
GetExpression(String, Boolean, Int32) | (Debugger2 から継承されます。) | |
GetExpression(String, Boolean, Int32) | 現在のスタック フレームに基づく式を評価します。式が解析はできるが評価できない場合、オブジェクトは返されますが、そのオブジェクトに有効な値は含まれていません。 | |
GetExpression2(String, Boolean, Boolean, Int32) | (Debugger2 から継承されます。) | |
GetExpression2(String, Boolean, Boolean, Int32) | 現在のスタック フレームに基づく式を評価します。式が解析はできるが評価できない場合、オブジェクトは返されますが、そのオブジェクトに有効な値は含まれていません。このメンバー関数は GetExpression に似ていますが、追加のブール値パラメーターを持ちます。式がステートメントとして評価されることを示すには、このブール値パラメーターを true に設定します。 | |
GetProcesses(Transport, String) | (Debugger2 から継承されます。) | |
GetProcesses(Transport, String) | ||
Go(Boolean) | (Debugger2 から継承されます。) | |
Go(Boolean) | 現在のステートメントからプログラムを実行します。 | |
RunToCursor(Boolean) | (Debugger2 から継承されます。) | |
RunToCursor(Boolean) | プログラムを、ソース ファイルの現在のカーソル位置まで実行します。 | |
SetNextStatement() | (Debugger2 から継承されます。) | |
SetNextStatement() | 現在のソース ファイルのカーソル位置に従って、次に実行する命令を設定します。 | |
SetSymbolSettings | Visual Studio がデバッグに使用する .PDB シンボルの各種設定を指定し、すべてのシンボルの再読み込みを強制します。 | |
StepInto(Boolean) | (Debugger2 から継承されます。) | |
StepInto(Boolean) | 可能な場合は、次の関数呼び出しにステップ インします。 | |
StepOut(Boolean) | (Debugger2 から継承されます。) | |
StepOut(Boolean) | 現在の関数からステップ アウトします。 | |
StepOver(Boolean) | (Debugger2 から継承されます。) | |
StepOver(Boolean) | 次の関数呼び出しにステップ オーバーします。 | |
Stop(Boolean) | (Debugger2 から継承されます。) | |
Stop(Boolean) | デバッグを中断し、アタッチされたすべてのプロセスを終了またはデタッチします。 | |
TerminateAll() | (Debugger2 から継承されます。) | |
TerminateAll() | 現在実行されているデバッグ プロセスをすべて終了します。 | |
WriteMinidump(String, dbgMinidumpOption) | (Debugger2 から継承されます。) | |
WriteMinidump(String, dbgMinidumpOption) |
このページのトップへ
解説
デバッガーは、以下の例に示すように、Debugger プロパティを使用して DTE2 オブジェクトを通じて利用できます。IDE (統合開発環境) で 1 つのデバッガー オブジェクトを利用できます。
例
Imports System
Imports EnvDTE
Imports EnvDTE90
Imports EnvDTE90
Imports System.Diagnostics
Public Module Module1
'This function returns true if the debugger is actively debugging.
Function IsDebugging() As Boolean
Dim debugger As EnvDTE90.Debugger3
debugger = DTE.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 "dte90.olb" raw_interfaces_only named_guids
using namespace EnvDTE90;
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(&pDebugger3)) &&
pDebugger3
!= NULL){
dbgDebugMode mode;
if (SUCCEEDED(pDebugger3->get_CurrentMode(&mode))) {
if (mode != dbgDesignMode) {
printf("Debugger is active.\n");
nRet = 1;
}
else {
printf("Debugger is not active.\n");
}
}
}
}
}
CoUninitialize();
return nRet;
}