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