Поделиться через


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 Возвращает текущий режим отладчика в контексте интегрированной среды разработки.
Открытое свойство CurrentProcess (Унаследовано от Debugger.)
Открытое свойство CurrentProcess Возвращает или задает активный процесс.
Открытое свойство CurrentProgram (Унаследовано от Debugger.)
Открытое свойство CurrentProgram Возвращает или задает активную программу.
Открытое свойство CurrentStackFrame (Унаследовано от Debugger.)
Открытое свойство CurrentStackFrame Возвращает или задает текущий кадр стека.
Открытое свойство CurrentThread (Унаследовано от Debugger.)
Открытое свойство CurrentThread Возвращает или задает отлаживаемый текущий поток.
Открытое свойство DebuggedProcesses (Унаследовано от Debugger.)
Открытое свойство DebuggedProcesses Получает список отлаживаемых в текущий момент процессов.
Открытое свойство DTE (Унаследовано от Debugger.)
Открытое свойство DTE Возвращает объект расширения верхнего уровня.
Открытое свойство HexDisplayMode (Унаследовано от Debugger.)
Открытое свойство HexDisplayMode Получает или задает значение, указывающее, в каком формате выводятся выражения: шестнадцатеричном или десятичном.
Открытое свойство HexInputMode (Унаследовано от Debugger.)
Открытое свойство HexInputMode Получает или задает значение, указывающее, в каком формате вычисляются выражения: шестнадцатеричном или десятичном.
Открытое свойство 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, как показано в приведенном ниже примере.Для каждого экземпляра среды разработки доступен один объект отладчика.

Примеры

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 - пространство имен