Share via


Debugger3 (Interfaz)

El objeto Debugger3 se usa para interrogar y manipular el estado del depurador y el programa que se está depurando. Debugger3 reemplaza a las interfaces Debugger2 y Debugger.

Espacio de nombres:  EnvDTE90
Ensamblado:  EnvDTE90 (en EnvDTE90.dll)

Sintaxis

'Declaración
<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

El tipo Debugger3 expone los siguientes miembros.

Propiedades

  Nombre Descripción
Propiedad pública AllBreakpointsLastHit Obtiene una colección de puntos de interrupción enlazados que se alcanzaron simultáneamente la última vez.
Propiedad pública BreakpointLastHit Obtiene el último punto de interrupción alcanzado.
Propiedad pública Breakpoints Obtiene una colección de puntos de interrupción.
Propiedad pública CurrentMode Obtiene el modo actual del depurador en el contexto de la IDE.
Propiedad pública CurrentProcess Obtiene o establece el proceso activo.
Propiedad pública CurrentProgram Establece o devuelve el programa activo.
Propiedad pública CurrentStackFrame Obtiene o establece el marco de pila actual.
Propiedad pública CurrentThread Obtiene o establece el subproceso que se está depurando.
Propiedad pública DebuggedProcesses Obtiene la lista de procesos que se están depurando.
Propiedad pública DTE Obtiene el objeto de extensibilidad de nivel superior.
Propiedad pública ExceptionGroups Obtiene los valores de excepción para el depurador.Para cada excepción, esta configuración determina si el depurador proporciona al código una oportunidad para controlar la excepción antes de que el depurador interrumpa la ejecución.
Propiedad pública ForceContinue Obtiene o establece un valor que determina si el depurador se interrumpe o continúa cuando un punto de seguimiento o un punto de interrupción termina de ejecutar una macro.El usuario establece el comportamiento predeterminado en el cuadro de diálogo al crear el punto de seguimiento o el punto de interrupción.Esta propiedad se puede utilizar para cambiar el comportamiento predeterminado.
Propiedad pública HexDisplayMode Obtiene o establece un valor que indica si las expresiones se representan en formato hexadecimal o decimal.
Propiedad pública HexInputMode Obtiene o establece un valor que indica si las expresiones se evalúan en formato hexadecimal o decimal.
Propiedad pública Languages Obtiene una lista de lenguajes compatibles con el depurador.
Propiedad pública LastBreakReason Obtiene el último motivo por el que se interrumpió un programa.Si el programa está en ejecución, devuelve DBG_REASON_NONE.
Propiedad pública LocalProcesses Obtiene la lista de procesos que se ejecutan actualmente en este equipo.
Propiedad pública OnlyLoadSymbolsManually Obtiene un valor que determina si los símbolos se cargan manual o automáticamente.El usuario de Visual Studio puede determinar este valor en el cuadro de diálogo Opciones.Para obtener más información sobre cómo establecer este valor en Visual Studio, vea [OBSOLETO] Cómo: Especificar el comportamiento de carga y las ubicaciones de los símbolos.
Propiedad pública Parent Obtiene el objeto primario inmediato del objeto Debugger3 (DTE2).
Propiedad pública SymbolCachePath Obtiene una cadena que contiene la ruta de acceso a la memoria caché de símbolos que utiliza Visual Studio al descargar símbolos de un servidor de símbolos.Puede especificar la ruta de acceso a la memoria caché de símbolos en el cuadro de diálogo Opciones.Para obtener más información, vea [OBSOLETO] Cómo: Usar un servidor de símbolos.
Propiedad pública SymbolPath Obtiene una cadena que contiene las rutas de acceso a los archivos de símbolos .PDB que utiliza Visual Studio para depurar.El usuario de Visual Studio puede especificar las rutas de acceso a los símbolos en el cuadro de diálogo Opciones.Para obtener más información, vea [OBSOLETO] Cómo: Especificar el comportamiento de carga y las ubicaciones de los símbolos.
Propiedad pública SymbolPathState Obtiene una cadena que representa el estado de todas las rutas de acceso a símbolos para los archivos de símbolos .PDB que utiliza Visual Studio para depurar.
Propiedad pública Transports Obtiene una colección de transportes de la depuración compatibles.

Arriba

Métodos

  Nombre Descripción
Método público Break Provoca una pausa en la ejecución del proceso indicado para poder analizar su estado actual.
Método público DetachAll Procede a la desconexión de todos los programas asociados.
Método público ExecuteStatement 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.
Método público GetExpression Evalúa una expresión basándose 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.
Método público GetExpression2 Evalúa una expresión basándose 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.Esta función miembro es similar a GetExpression pero con un parámetro booleano adicional, que se puede establecer como true para indicar que la expresión se evaluará como una instrucción.
Método público GetProcesses
Método público Go Inicia la ejecución del programa a partir de la instrucción actual.
Método público RunToCursor Ejecuta el programa hasta la posición actual del cursor del archivo de código fuente.
Método público 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.
Método público SetSymbolSettings Establece varios valores para los símbolos .PDB que utiliza Visual Studio para depurar y exige la recarga de todos los símbolos.
Método público StepInto Recorre paso a paso instrucciones hasta llegar a la siguiente llamada a una función, si es posible.
Método público StepOut Sale paso a paso de la función actual.
Método público StepOver Pasa por alto la siguiente llamada a función.
Método público Stop Detiene la depuración y finaliza o desasocia todos los procesos asociados.
Método público TerminateAll Finaliza todos los procesos de depuración en ejecución.
Método público WriteMinidump

Arriba

Comentarios

El depurador está disponible a través del objeto DTE2 mediante su propiedad Debugger, como se muestra en el ejemplo siguiente. Hay disponible un objeto de depurador para cada instancia del entorno de desarrollo integrado (IDE).

Ejemplos

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

Vea también

Referencia

EnvDTE90 (Espacio de nombres)