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 | Возвращает коллекцию связанных точек останова, в которые произошло последнее одновременное попадание. |
![]() |
BreakpointLastHit | Возвращает последнюю точку останова, в которую произошло попадание. |
![]() |
Breakpoints | Возвращает коллекцию точек останова. |
![]() |
CurrentMode | Возвращает текущий режим отладчика в контексте интегрированной среды разработки. |
![]() |
CurrentProcess | Возвращает или задает активный процесс. |
![]() |
CurrentProgram | Возвращает или задает активную программу. |
![]() |
CurrentStackFrame | Возвращает или задает текущий кадр стека. |
![]() |
CurrentThread | Возвращает или задает отлаживаемый текущий поток. |
![]() |
DebuggedProcesses | Получает список отлаживаемых в текущий момент процессов. |
![]() |
DTE | Возвращает объект расширения верхнего уровня. |
![]() |
HexDisplayMode | Получает или задает значение, указывающее, в каком формате выводятся выражения: шестнадцатеричном или десятичном. |
![]() |
HexInputMode | Получает или задает значение, указывающее, в каком формате вычисляются выражения: шестнадцатеричном или десятичном. |
![]() |
Languages | Возвращает список языков, которые поддерживает отладчик. |
![]() |
LastBreakReason | Возвращает последнюю причину прерывания работы программы.Если программа работает, возвращается значение DBG_REASON_NONE. |
![]() |
LocalProcesses | Получает список процессов, выполняющихся в текущий момент на этом компьютере. |
![]() |
Parent | Получает непосредственный родительский объект объекта Debugger2 (DTE2). |
![]() |
Transports | Возвращает коллекцию поддерживаемых транспортов отладки. |
В начало страницы
Методы
Имя | Описание | |
---|---|---|
![]() |
Break | Вызывает приостановку выполнения указанного процесса, чтобы можно было проанализировать его состояние. |
![]() |
DetachAll | Отсоединяется от всех присоединенных программ. |
![]() |
ExecuteStatement | Выполняет указанный оператор.Если флаг TreatAsExpression принимает значение true, строка интерпретируется как выражение и результат направляется в Окно "Команда". |
![]() |
GetExpression | Вычисляет выражение, основанное на текущем кадре стека.Если выражение можно проанализировать, но нельзя вычислить, то объект все равно возвращается, но при этом значение его будет недействительно. |
![]() |
GetExpression2 | Вычисляет выражение, основанное на текущем кадре стека.Если выражение можно проанализировать, но нельзя вычислить, то объект все равно возвращается, но при этом значение его будет недействительно. |
![]() |
GetProcesses | Позволяет вызывающему объекту получать коллекцию процессов с удаленного компьютера. |
![]() |
Go | Запускает выполнение программы, начиная с текущего оператора. |
![]() |
RunToCursor | Выполняет программу до строки, на которой в данный момент находится курсор. |
![]() |
SetNextStatement | Указывает оператор, который будет выполнен следующим, в соответствии с позицией курсора в текущем исходном файле. |
![]() |
StepInto | При возможности выполняет шаг с заходом в следующий вызов функции. |
![]() |
StepOut | Выходит из текущей функции. |
![]() |
StepOver | Обходит вызов следующей функции. |
![]() |
Stop | Прекращает отладку и завершает или отсоединяет все вложенные процессы. |
![]() |
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;
}