Debugger2 (Interfaz)
El objeto Debugger2 se utiliza para interrogar y manipular el estado del depurador y el programa que se está depurando.El objeto Debugger2 reemplaza al objeto Debugger.
Espacio de nombres: EnvDTE80
Ensamblado: EnvDTE80 (en EnvDTE80.dll)
Sintaxis
'Declaración
<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
El tipo Debugger2 expone los siguientes miembros.
Propiedades
Nombre | Descripción | |
---|---|---|
AllBreakpointsLastHit | (Se hereda de Debugger). | |
AllBreakpointsLastHit | Obtiene una colección de puntos de interrupción enlazados que se alcanzaron simultáneamente la última vez. | |
BreakpointLastHit | (Se hereda de Debugger). | |
BreakpointLastHit | Obtiene el último punto de interrupción alcanzado. | |
Breakpoints | (Se hereda de Debugger). | |
Breakpoints | Obtiene una colección de puntos de interrupción. | |
CurrentMode | (Se hereda de Debugger). | |
CurrentMode | Obtiene el modo actual del depurador en el contexto de la IDE. | |
CurrentProcess | (Se hereda de Debugger). | |
CurrentProcess | Obtiene o establece el proceso activo. | |
CurrentProgram | (Se hereda de Debugger). | |
CurrentProgram | Establece o devuelve el programa activo. | |
CurrentStackFrame | (Se hereda de Debugger). | |
CurrentStackFrame | Obtiene o establece el marco de pila actual. | |
CurrentThread | (Se hereda de Debugger). | |
CurrentThread | Obtiene o establece el subproceso que se está depurando. | |
DebuggedProcesses | (Se hereda de Debugger). | |
DebuggedProcesses | Obtiene la lista de procesos que se están depurando actualmente. | |
DTE | (Se hereda de Debugger). | |
DTE | Obtiene el objeto de extensibilidad de nivel superior. | |
HexDisplayMode | (Se hereda de Debugger). | |
HexDisplayMode | Obtiene o establece un valor que indica si las expresiones se representan en formato hexadecimal o decimal. | |
HexInputMode | (Se hereda de Debugger). | |
HexInputMode | Obtiene o establece un valor que indica si las expresiones se evalúan en formato hexadecimal o decimal. | |
Languages | (Se hereda de Debugger). | |
Languages | Obtiene una lista de lenguajes compatibles con el depurador. | |
LastBreakReason | (Se hereda de Debugger). | |
LastBreakReason | Obtiene el último motivo por el que se interrumpió un programa.Si el programa está en ejecución, devuelve DBG_REASON_NONE. | |
LocalProcesses | (Se hereda de Debugger). | |
LocalProcesses | Obtiene la lista de procesos que se ejecutan actualmente en esta máquina. | |
Parent | (Se hereda de Debugger). | |
Parent | Obtiene el objeto primario inmediato del objeto Debugger2 (DTE2). | |
Transports | Obtiene una colección de transportes de la depuración compatibles. |
Arriba
Métodos
Nombre | Descripción | |
---|---|---|
Break(Boolean) | (Se hereda de Debugger). | |
Break(Boolean) | Provoca una pausa en la ejecución del proceso indicado para poder analizar su estado actual. | |
DetachAll() | (Se hereda de Debugger). | |
DetachAll() | Desasocia de todos los programas asociados. | |
ExecuteStatement(String, Int32, Boolean) | (Se hereda de Debugger). | |
ExecuteStatement(String, Int32, Boolean) | Ejecuta la instrucción especificada.Si la marca TreatAsExpression es true, la cadena se interpreta como una expresión y el resultado se envía a la Ventana de comandos. | |
GetExpression(String, Boolean, Int32) | (Se hereda de Debugger). | |
GetExpression(String, Boolean, Int32) | Se evalúa como una expresión basada en el marco de pila actual.Si la expresión puede analizarse pero no puede evaluarse, se devuelve un objeto que no contendrá un valor válido. | |
GetExpression2 | Se evalúa como una expresión basada en el marco de pila actual.Si la expresión puede analizarse pero no puede evaluarse, se devuelve un objeto que no contendrá un valor válido. | |
GetProcesses | Permite al llamador obtener una colección de procesos de una máquina remota. | |
Go(Boolean) | (Se hereda de Debugger). | |
Go(Boolean) | Inicia la ejecución del programa a partir de la instrucción actual. | |
RunToCursor(Boolean) | (Se hereda de Debugger). | |
RunToCursor(Boolean) | Ejecuta el programa hasta la posición actual del cursor en el archivo de código fuente. | |
SetNextStatement() | (Se hereda de Debugger). | |
SetNextStatement() | Establece la siguiente instrucción que se va a ejecutar, según la posición del cursor en el archivo de código fuente actual. | |
StepInto(Boolean) | (Se hereda de Debugger). | |
StepInto(Boolean) | Recorre paso a paso instrucciones hasta llegar a la siguiente llamada a una función, si es posible. | |
StepOut(Boolean) | (Se hereda de Debugger). | |
StepOut(Boolean) | Sale paso a paso de la función actual. | |
StepOver(Boolean) | (Se hereda de Debugger). | |
StepOver(Boolean) | Pasa por alto la siguiente llamada a función. | |
Stop(Boolean) | (Se hereda de Debugger). | |
Stop(Boolean) | Detiene la depuración y finaliza o desasocia todos los procesos asociados. | |
TerminateAll() | (Se hereda de Debugger). | |
TerminateAll() | Finaliza todos los procesos de depuración en ejecución. | |
WriteMinidump | Si se está depurando un programa y en el modo de interrupción, esta función crea un minivolcado de la sesión de depuración actual. |
Arriba
Comentarios
El depurador está disponible a través de la propiedad Debugger del objeto DTE2, como se muestra en el ejemplo adjunto.Para cada instancia del entorno de desarrollo hay un objeto Debugger disponible.
Ejemplos
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;
}