Partager via


Définition de points d’arrêt

Les points d’arrêt sont créés avec la méthode AddBreakpoint . Cette méthode crée un objet IDebugBreakpoint qui représente le point d’arrêt. Il définit également le type de point d’arrêt (point d’arrêt logiciel ou point d’arrêt du processeur). Une fois qu’un point d’arrêt a été créé, son type ne peut pas être modifié.

Les points d’arrêt sont supprimés avec la méthode RemoveBreakpoint . Cela supprime également l’objet IDebugBreakpoint ; cet objet ne peut pas être réutilisé.

Note Bien que IDebugBreakpoint implémente l’interface IUnknown , les méthodes IUnknown::AddRef et IUnknown::Release ne sont pas utilisées pour contrôler la durée de vie du point d’arrêt. Ces méthodes n’ont aucun effet sur la durée de vie du point d’arrêt. Au lieu de cela, un objet IDebugBreakpoint est supprimé après l’appel de la méthode RemoveBreakpoint .

Lorsque le point d’arrêt est créé, un ID de point d’arrêt unique lui est attribué. Cet identificateur ne changera pas. Toutefois, une fois le point d’arrêt supprimé, son ID peut être utilisé pour un autre point d’arrêt. Pour plus d’informations sur la façon de recevoir une notification de suppression d’un point d’arrêt, consultez Surveillance des événements.

Lorsqu’un point d’arrêt est créé, il est initialement désactivé ; cela signifie que cela n’entraîne pas l’arrêt de l’exécution de la cible. Ce point d’arrêt peut être activé à l’aide de la méthode AddFlags pour ajouter l’indicateur DEBUG_BREAKPOINT_ENABLED.

Lorsqu’un point d’arrêt est créé pour la première fois, l’emplacement de mémoire 0x00000000 lui est associé. L’emplacement peut être modifié à l’aide de SetOffset avec une adresse ou à l’aide de SetOffsetExpression avec une expression symbolique. L’emplacement du point d’arrêt doit être modifié par rapport à sa valeur initiale avant d’être utilisé.