この記事は翻訳者によって翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。
訳文
原文
このトピックはまだ評価されていません - このトピックを評価する

Debugger インターフェイス

Debugger オブジェクトを使用すると、デバッガーの状態やデバッグ中のプログラムの状態を問い合わせたり、操作したりできます。

名前空間:  EnvDTE
アセンブリ:  EnvDTE (EnvDTE.dll 内)
[GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")]
public interface Debugger

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 プロパティを使用して DTE オブジェクトを通じて利用できます。 各開発環境で 1 つのデバッガー オブジェクトを利用できます。

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;
}

この情報は役に立ちましたか。
(残り 1500 文字)
コミュニティ コンテンツ 追加
注釈 FAQ