Debugger, interface

L'objet Debugger est utilisé pour interroger et manipuler l'état du débogueur et le programme en cours de débogage.

Espace de noms :  EnvDTE
Assembly :  EnvDTE (dans EnvDTE.dll)

Syntaxe

'Déclaration
<GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")> _
Public Interface Debugger
[GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")]
public interface Debugger
[GuidAttribute(L"338FB9A0-BAE5-11D2-8AD1-00C04F79E479")]
public interface class Debugger
[<GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")>]
type Debugger =  interface end
public interface Debugger

Le type Debugger expose les membres suivants.

Propriétés

  Nom Description
Propriété publique AllBreakpointsLastHit Obtient une collection des derniers points d'arrêt liés ayant fait l'objet d'un accès simultané.
Propriété publique BreakpointLastHit Obtient le dernier point d'arrêt ayant fait l'objet d'un accès.
Propriété publique Breakpoints Obtient une collection de points d'arrêt.
Propriété publique CurrentMode Obtient le mode actuel du débogueur dans le contexte de l'environnement de développement intégré (IDE, Integrated Development Environment).
Propriété publique CurrentProcess Définit ou obtient le processus actif.
Propriété publique CurrentProgram Définit ou obtient le programme actif.
Propriété publique CurrentStackFrame Définit ou obtient le frame de pile actuel.
Propriété publique CurrentThread Définit ou obtient le thread actuellement en cours de débogage.
Propriété publique DebuggedProcesses Obtient la liste des processus actuellement en cours de débogage.
Propriété publique DTE Obtient l'objet d'extensibilité de niveau supérieur.
Propriété publique HexDisplayMode Obtient ou définit une valeur indiquant si le format de sortie des expressions est hexadécimal ou décimal.
Propriété publique HexInputMode Obtient ou définit une valeur indiquant si les expressions sont évaluées au format hexadécimal ou décimal.
Propriété publique Languages Obtient la liste des langages pris en charge par le débogueur.
Propriété publique LastBreakReason Obtient la dernière raison d'interruption d'un programme.Si le programme est en cours d'exécution, il retourne DBG_REASON_NONE.
Propriété publique LocalProcesses Obtient la liste des processus en cours d'exécution sur cet ordinateur.
Propriété publique Parent Obtient l'objet parent immédiat d'un objet Debugger.

Début

Méthodes

  Nom Description
Méthode publique Break Entraîne la suspension de l'exécution du processus donné afin que son état actuel puisse être analysé.
Méthode publique DetachAll Détache de tous les programmes attachés.
Méthode publique ExecuteStatement Exécute l'instruction spécifiée.Si l'indicateur TreatAsExpression est true, la chaîne est interprétée comme une expression et la sortie est envoyée à la fenêtre Commande.
Méthode publique GetExpression Évalue une expression sur la base du frame de pile actuel.Si l'expression peut être analysée mais qu'elle ne peut pas être évaluée, un objet est retourné mais il ne contiendra pas de valeur valide.
Méthode publique Go Démarre l'exécution du programme à partir de l'instruction actuelle.
Méthode publique RunToCursor Exécute le programme jusqu'à la position actuelle du curseur du fichier source.
Méthode publique SetNextStatement Définit l'instruction suivante à exécuter, en fonction de la position du curseur dans le fichier source actuel.
Méthode publique StepInto Effectue un pas à pas détaillé dans l'appel de fonction suivant, si possible.
Méthode publique StepOut Sort de la fonction active.
Méthode publique StepOver Passe à l'appel de fonction suivant.
Méthode publique Stop Arrête le débogage, en terminant ou en détachant tous les processus attachés.
Méthode publique TerminateAll Termine tous les processus.

Début

Notes

Le débogueur est disponible via l'objet DTE par l'intermédiaire de sa propriété Debugger, comme indiqué dans l'exemple ci-dessous. Un objet débogueur est disponible pour chaque instance de l'environnement de développement.

Exemples

L'exemple suivant montre comment utiliser l'objet 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 EnvDTE.Debugger
        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 small 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 EnvDTE;

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(&pDebugger)) && pDebugger != NULL){
                dbgDebugMode mode;
                if (SUCCEEDED(pDebugger->get_CurrentMode(&mode))) {
                    if (mode != dbgDesignMode) {
                        printf("Debugger is active.\n");
                        nRet = 1;
                    }
                    else {
                        printf("Debugger is not active.\n");
                    }
                }
            }
        }
    }

    CoUninitialize();

    return nRet;
}

Voir aussi

Référence

EnvDTE, espace de noms

Autres ressources

Graphique Modèle d'objet Automation

Débogage dans Visual Studio