Partager via


Méthodes liées au point d’arrêt

Un moteur de débogage (DE) doit prendre en charge le paramétrage des points d’arrêt. Le débogage dans Visual Studio prend en charge les types de points d’arrêt suivants :

  • Limite

    Demandé via l’interface utilisateur et lié avec succès à un emplacement spécifié dans le code.

  • Pending

    Demandé via l’interface utilisateur mais pas encore lié aux instructions réelles.

Discussion

Par exemple, un point d’arrêt en attente se produit lorsque les instructions ne sont pas encore chargées. Lorsque le code est chargé, les points d’arrêt en attente tentent de se lier au code à l’emplacement prescrit, c’est-à-dire d’insérer des instructions d’arrêt dans le code. Des événements sont envoyés au gestionnaire de session de débogage (SDM) pour indiquer la liaison réussie ou pour notifier qu’il y a eu des erreurs de liaison.

Un point d’arrêt en attente gère également sa propre liste interne de points d’arrêt liés correspondants. Un point d’arrêt en attente peut entraîner l’insertion de plusieurs points d’arrêt dans le code. L’interface utilisateur de débogage de Visual Studio affiche une vue arborescente des points d’arrêt en attente et de leurs points d’arrêt liés correspondants.

La création et l’utilisation des points d’arrêt en attente nécessitent la mise en œuvre de la méthode IDebugEngine2::CreatePendingBreakpoint ainsi que des méthodes suivantes des interfaces IDebugPendingBreakpoint2.

Méthode Description
CanBind Détermine si un point d’arrêt en attente spécifié peut se lier à un emplacement de code.
Bind Lie un point d’arrêt en attente spécifié à un ou plusieurs emplacements de code.
GetState Obtient l’état d’un point d’arrêt en attente.
GetBreakpointRequest Obtient la demande de point d’arrêt utilisée pour créer un point d’arrêt en attente.
Activer Bascule l’état activé d’un point d’arrêt en attente.
EnumBoundBreakpoints Énumère tous les points d’arrêt liés à partir d’un point d’arrêt en attente.
EnumErrorBreakpoints Énumère tous les points d’arrêt d’erreur résultant d’un point d’arrêt en attente.
Supprimer Supprime un point d’arrêt en attente et tous les points d’arrêt liés à partir de celui-ci.

Pour énumérer les points d’arrêt liés et les points d’arrêt d’erreur, vous devez mettre en œuvre toutes les méthodes des interfaces IEnumDebugBoundBreakpoints2 et IEnumDebugErrorBreakpoints2.

Les points d’arrêt en attente qui se lient à un emplacement de code nécessitent la mise en œuvre des méthodes suivantes de IDebugBoundBreakpoint2 :

Méthode Description
GetPendingBreakpoint Obtient le point d’arrêt en attente qui contient un point d’arrêt.
GetState Obtient l’état d’un point d’arrêt lié.
GetBreakpointResolution Obtient la résolution de point d’arrêt qui décrit un point d’arrêt.
Activer Active ou désactive un point d’arrêt.
Supprimer Supprime un point d’arrêt lié.

Les informations de résolution et de demande nécessitent la mise en œuvre des méthodes suivantes de IDebugBreakpointResolution2 :

Méthode Description
GetBreakpointType Obtient le type du point d’arrêt représenté par une résolution.
GetResolutionInfo Obtient les informations de résolution de point d’arrêt qui décrivent un point d’arrêt.

La résolution des erreurs pouvant survenir lors de la liaison nécessite la mise en œuvre des méthodes suivantes de IDebugErrorBreakpoint2.

Méthode Description
GetPendingBreakpoint Obtient le point d’arrêt en attente qui contient un point d’arrêt d’erreur.
GetBreakpointResolution Obtient la résolution d’erreur de point d’arrêt qui décrit un point d’arrêt d’erreur.

La résolution des erreurs pouvant survenir lors de la liaison nécessite également les méthodes suivantes de IDebugErrorBreakpointResolution2.

Méthode Description
GetBreakpointType Obtient le type d’un point d’arrêt.
GetResolutionInfo Obtient les informations de résolution d’un point d’arrêt.

Pour afficher le code source à un point d’arrêt, vous devez implémenter les méthodes de IDebugStackFrame2::GetDocumentContext et/ou les méthodes de IDebugStackFrame2::GetCodeContext.

Voir aussi