この記事は翻訳者によって翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 |
訳文
原文
|
Debugger インターフェイス
Debugger オブジェクトを使用すると、デバッガーの状態やデバッグ中のプログラムの状態を問い合わせたり、操作したりできます。
アセンブリ: EnvDTE (EnvDTE.dll 内)
Debugger 型で公開されるメンバーは以下のとおりです。
| 名前 | 説明 | |
|---|---|---|
|
AllBreakpointsLastHit | 最後に同時にヒットした、バインドされているブレークポイントのコレクションを取得します。 |
|
BreakpointLastHit | 最新のブレークポイント ヒットを取得します。 |
|
Breakpoints | ブレークポイントのコレクションを取得します。 |
|
CurrentMode | 統合開発環境 (IDE: Integrated Development Environment) のコンテキストのデバッガーの現在のモードを取得します。 |
|
CurrentProcess | アクティブなプロセスを設定または取得します。 |
|
CurrentProgram | アクティブなプログラムを設定または取得します。 |
|
CurrentStackFrame | 現在のスタック フレームを設定または取得します。 |
|
CurrentThread | デバッグ中の現在のスレッドを設定または取得します。 |
|
DebuggedProcesses | 現在デバッグ中のプロセスのリストを取得します。 |
|
DTE | トップ レベルの機能拡張オブジェクトを取得します。 |
|
HexDisplayMode | 式を 16 進形式と 10 進形式のどちらの形式で出力するかを取得または設定します。 |
|
HexInputMode | 式を 16 進形式と 10 進形式のどちらの形式で評価するかを取得または設定します。 |
|
Languages | デバッガーがサポートしている言語のリストを取得します。 |
|
LastBreakReason | 最後にプログラムが中断されたときの原因を取得します。 プログラムが実行中の場合は、DBG_REASON_NONE を返します。 |
|
LocalProcesses | このコンピューター上で現在実行されているプロセスのリストを取得します。 |
|
Parent | Debugger オブジェクトの直接の親オブジェクトを取得します。 |
| 名前 | 説明 | |
|---|---|---|
|
Break | 指定されたプロセスの現在の状態を解析するために、そのプロセスの実行を一時中断します。 |
|
DetachAll | アタッチされたすべてのプログラムからデタッチします。 |
|
ExecuteStatement | 指定されたステートメントを実行します。 TreatAsExpression フラグが true の場合、文字列は式として解釈され、出力はコマンド ウィンドウに送られます。 |
|
GetExpression | 現在のスタック フレームに基づく式を評価します。 式が解析可能でありながら評価できない場合、オブジェクトは返されますが、そのオブジェクトに有効な値は含まれていません。 |
|
Go | 現在のステートメントからプログラムを実行します。 |
|
RunToCursor | プログラムを、ソース ファイルの現在のカーソル位置まで実行します。 |
|
SetNextStatement | 現在のソース ファイルのカーソル位置に従って、次に実行する命令を設定します。 |
|
StepInto | 可能な場合は、次の関数呼び出しにステップ インします。 |
|
StepOut | 現在の関数からステップ アウトします。 |
|
StepOver | 次の関数呼び出しにステップ オーバーします。 |
|
Stop | アタッチされたすべてのプロセスのデバッグ、終了、またはデタッチを中断します。 |
|
TerminateAll | すべてのプロセスを終了します。 |
Debugger オブジェクトの使用方法を次の例に示します。
// The following small 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 EnvDTE; 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(&pDebugger)) && pDebugger != NULL){ dbgDebugMode mode; if (SUCCEEDED(pDebugger->get_CurrentMode(&mode))) { if (mode != dbgDesignMode) { printf("Debugger is active.\n"); nRet = 1; } else { printf("Debugger is not active.\n"); } } } } } CoUninitialize(); return nRet; }