Share via


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

参照

参照

EnvDTE80 名前空間