Debugger3 - интерфейс
Объект Debugger3 используется для опроса и управления состоянием отладчика и отлаживаемой программы. Объект Debugger3 заменяет интерфейсы Debugger2 и Debugger.
Пространство имен: EnvDTE90
Сборка: EnvDTE90 (в EnvDTE90.dll)
Синтаксис
'Декларация
<GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")> _
Public Interface Debugger3 _
Inherits Debugger2
[GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
public interface Debugger3 : Debugger2
[GuidAttribute(L"87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
public interface class Debugger3 : Debugger2
[<GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")>]
type Debugger3 =
interface
interface Debugger2
end
public interface Debugger3 extends Debugger2
Тип Debugger3 предоставляет следующие члены.
Свойства
Имя | Описание | |
---|---|---|
AllBreakpointsLastHit | (Унаследовано от Debugger2.) | |
AllBreakpointsLastHit | Возвращает коллекцию связанных точек останова, в которые произошло последнее одновременное попадание. | |
BreakpointLastHit | (Унаследовано от Debugger2.) | |
BreakpointLastHit | Возвращает последнюю точку останова, в которую произошло попадание. | |
Breakpoints | (Унаследовано от Debugger2.) | |
Breakpoints | Возвращает коллекцию точек останова. | |
CurrentMode | (Унаследовано от Debugger2.) | |
CurrentMode | Возвращает текущий режим отладчика в контексте интегрированной среды разработки. | |
CurrentProcess | (Унаследовано от Debugger2.) | |
CurrentProcess | Возвращает или задает активный процесс. | |
CurrentProgram | (Унаследовано от Debugger2.) | |
CurrentProgram | Возвращает или задает активную программу. | |
CurrentStackFrame | (Унаследовано от Debugger2.) | |
CurrentStackFrame | Возвращает или задает текущий кадр стека. | |
CurrentThread | (Унаследовано от Debugger2.) | |
CurrentThread | Возвращает или задает отлаживаемый текущий поток. | |
DebuggedProcesses | (Унаследовано от Debugger2.) | |
DebuggedProcesses | Возвращает список отлаживаемых процессов. | |
DTE | (Унаследовано от Debugger2.) | |
DTE | Возвращает объект расширения верхнего уровня. | |
ExceptionGroups | Возвращает параметры исключений для отладчика.Для каждого исключения эти параметры определяют, должен ли отладчик перед остановом выполнения предоставлять коду возможность обработки исключения. | |
ForceContinue | Возвращает или задает значение, которое определяет, следует ли отладчику прерывать или продолжать работу, если выполнение макроса останавливается в точке останова или трассировки.Поведение по умолчанию задается пользователем в диалоговом окне при создании точки трассировки или останова.Данное свойство можно использовать для изменения поведения по умолчанию. | |
HexDisplayMode | (Унаследовано от Debugger2.) | |
HexDisplayMode | Возвращает или задает значение, указывающее, в каком формате выводятся выражения: шестнадцатеричном или десятичном. | |
HexInputMode | (Унаследовано от Debugger2.) | |
HexInputMode | Возвращает или задает значение, указывающее, в каком формате вычисляются выражения: шестнадцатеричном или десятичном. | |
Languages | (Унаследовано от Debugger2.) | |
Languages | Возвращает список языков, которые поддерживает отладчик. | |
LastBreakReason | (Унаследовано от Debugger2.) | |
LastBreakReason | Возвращает последнюю причину прерывания работы программы.Если программа работает, возвращается значение DBG_REASON_NONE. | |
LocalProcesses | (Унаследовано от Debugger2.) | |
LocalProcesses | Возвращает список процессов, выполняющихся в данный момент на этом компьютере. | |
OnlyLoadSymbolsManually | Возвращает значение, которое определяет, как загружаются символы: автоматически или вручную.Этот параметр определяется пользователем Visual Studio в диалоговом окне Параметры.Дополнительные сведения об установке этого значения в Visual Studio см. в разделе Практическое руководство. Указание мест расположения символов и поведения загрузки. | |
Parent | (Унаследовано от Debugger2.) | |
Parent | Возвращает непосредственный родительский объект для объекта Debugger3 (DTE2). | |
SymbolCachePath | Возвращает строку, содержащую путь к кэшу символов, который используется в среде Visual Studio при загрузке символов с сервера символов.Путь к кэшу символов можно указать в диалоговом окне Параметры.Дополнительные сведения см. в разделе Практическое руководство. Использование сервера символов. | |
SymbolPath | Возвращает строку, содержащую путь к PDB-файлам символов, которые используются в среде Visual Studio для отладки.Пути к объектам символов определяется пользователем Visual Studio в диалоговом окне Параметры.Дополнительные сведения см. в разделе Практическое руководство. Указание мест расположения символов и поведения загрузки. | |
SymbolPathState | Возвращает строку, представляющую состояние всех символьных путей для PDB-файлов символов, которые используются в среде Visual Studio для отладки. | |
Transports | (Унаследовано от Debugger2.) | |
Transports | Возвращает коллекцию поддерживаемых транспортов отладки. |
В начало страницы
Методы
Имя | Описание | |
---|---|---|
Break(Boolean) | (Унаследовано от Debugger2.) | |
Break(Boolean) | Вызывает приостановку выполнения указанного процесса, чтобы можно было проанализировать его состояние. | |
DetachAll() | (Унаследовано от Debugger2.) | |
DetachAll() | Отключается от всех вложенных программ. | |
ExecuteStatement(String, Int32, Boolean) | (Унаследовано от Debugger2.) | |
ExecuteStatement(String, Int32, Boolean) | Выполняет указанный оператор.Если флаг TreatAsExpression принимает значение true, строка интерпретируется как выражение и результат направляется в Окно "Команда". | |
GetExpression(String, Boolean, Int32) | (Унаследовано от Debugger2.) | |
GetExpression(String, Boolean, Int32) | Вычисляет выражение на основании текущего кадра стека.Если выражение можно проанализировать, но нельзя вычислить, то объект все равно возвращается, но при этом значение его будет недействительно. | |
GetExpression2(String, Boolean, Boolean, Int32) | (Унаследовано от Debugger2.) | |
GetExpression2(String, Boolean, Boolean, Int32) | Вычисляет выражение на основании текущего кадра стека.Если выражение можно проанализировать, но нельзя вычислить, то объект все равно возвращается, но при этом значение его будет недействительно.Эта функция-член аналогична методу GetExpression, однако содержит дополнительный логический параметр, для которого можно задать значение "true", чтобы указать на необходимость вычисления данного выражения как оператора. | |
GetProcesses(Transport, String) | (Унаследовано от Debugger2.) | |
GetProcesses(Transport, String) | ||
Go(Boolean) | (Унаследовано от Debugger2.) | |
Go(Boolean) | Запускает выполнение программы, начиная с текущего оператора. | |
RunToCursor(Boolean) | (Унаследовано от Debugger2.) | |
RunToCursor(Boolean) | Выполняет программу до текущего положения курсора в исходном файле. | |
SetNextStatement() | (Унаследовано от Debugger2.) | |
SetNextStatement() | Указывает оператор, который будет выполнен следующим, в соответствии с позицией курсора в текущем исходном файле. | |
SetSymbolSettings | Задает различные параметры PDB-файлов символов, используемых в Visual Studio для отладки, и указывает на необходимость принудительной повторной загрузки символов. | |
StepInto(Boolean) | (Унаследовано от Debugger2.) | |
StepInto(Boolean) | При возможности выполняет шаг с заходом в следующий вызов функции. | |
StepOut(Boolean) | (Унаследовано от Debugger2.) | |
StepOut(Boolean) | Выходит из текущей функции. | |
StepOver(Boolean) | (Унаследовано от Debugger2.) | |
StepOver(Boolean) | Обходит вызов следующей функции. | |
Stop(Boolean) | (Унаследовано от Debugger2.) | |
Stop(Boolean) | Прекращает отладку и завершает или отсоединяет все вложенные процессы. | |
TerminateAll() | (Унаследовано от Debugger2.) | |
TerminateAll() | Завершает все отлаживаемые в данный момент процессы. | |
WriteMinidump(String, dbgMinidumpOption) | (Унаследовано от Debugger2.) | |
WriteMinidump(String, dbgMinidumpOption) |
В начало страницы
Заметки
Доступ к отладчику можно получить с помощью объекта DTE2 через его свойство Debugger, как показано в следующем примере. Для каждого экземпляра интегрированной среды разработки (IDE) существует один объект отладчика.
Примеры
Imports System
Imports EnvDTE
Imports EnvDTE90
Imports EnvDTE90
Imports System.Diagnostics
Public Module Module1
'This function returns true if the debugger is actively debugging.
Function IsDebugging() As Boolean
Dim debugger As EnvDTE90.Debugger3
debugger = DTE.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 "dte90.olb" raw_interfaces_only named_guids
using namespace EnvDTE90;
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(&pDebugger3)) &&
pDebugger3
!= NULL){
dbgDebugMode mode;
if (SUCCEEDED(pDebugger3->get_CurrentMode(&mode))) {
if (mode != dbgDesignMode) {
printf("Debugger is active.\n");
nRet = 1;
}
else {
printf("Debugger is not active.\n");
}
}
}
}
}
CoUninitialize();
return nRet;
}