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.