Méthodes de contrôle des points d’arrêt
Vous pouvez spécifier l’emplacement d’un point d’arrêt par adresse virtuelle, décalages de module et de routine, ou fichier source et numéro de ligne (en mode source). Si vous placez un point d’arrêt sur une routine sans décalage, le point d’arrêt est activé lorsque cette routine est entrée.
Il existe plusieurs autres types de points d’arrêt :
Un point d’arrêt peut être associé à un certain thread.
Un point d’arrêt peut activer un nombre fixe de passages à travers une adresse avant qu’il ne soit déclenché.
Un point d’arrêt peut émettre automatiquement certaines commandes lorsqu’il est déclenché.
Un point d’arrêt peut être défini sur la mémoire non exécutable et watch pour que cet emplacement soit lu ou écrit.
Si vous déboguez plusieurs processus en mode utilisateur, la collection de points d’arrêt dépend du processus actuel. Pour afficher ou modifier les points d’arrêt d’un processus, vous devez sélectionner le processus en tant que processus actuel. Pour plus d’informations sur le processus actuel, consultez Contrôle des processus et des threads.
Commandes de débogueur pour le contrôle et l’affichage des points d’arrêt
Pour contrôler ou afficher des points d’arrêt, vous pouvez utiliser les méthodes suivantes :
Utilisez la commande bl (Liste de points d’arrêt) pour répertorier les points d’arrêt existants et leurs status actuels.
Utilisez la commande .bpcmds (Display Breakpoint Commands) pour répertorier tous les points d’arrêt ainsi que les commandes utilisées pour les créer.
Utilisez la commande bp (Définir le point d’arrêt) pour définir un nouveau point d’arrêt.
Utilisez la commande bu (Définir le point d’arrêt non résolu) pour définir un nouveau point d’arrêt. Les points d’arrêt définis avec bu sont appelés points d’arrêt non résolus ; ils ont des caractéristiques différentes des points d’arrêt définis avec bp. Pour plus d’informations, consultez Points d’arrêt non résolus (voir Points d’arrêt non résolus).
Utilisez la commande bm (Définir le point d’arrêt du symbole) pour définir de nouveaux points d’arrêt sur les symboles qui correspondent à un modèle spécifié. Un point d’arrêt défini avec bm est associé à une adresse (comme un point d’arrêt bp ) si le commutateur /d est inclus ; il ne sera pas résolu (comme un point d’arrêt bu) si ce commutateur n’est pas inclus.
Utilisez la commande ba (Arrêt de l’accès) pour définir un point d’arrêt du processeur, également appelé point d’arrêt des données. Ces points d’arrêt peuvent être déclenchés lorsque l’emplacement de la mémoire est écrit dans, lorsqu’il est lu, lorsqu’il est exécuté en tant que code ou quand les E/S du noyau se produisent. Pour plus d’informations, consultez Points d’arrêt du processeur (ba) .
Utilisez la commande bc (point d’arrêt clair) pour supprimer définitivement un ou plusieurs points d’arrêt.
Utilisez la commande bd (Désactiver le point d’arrêt) pour désactiver temporairement un ou plusieurs points d’arrêt.
Utilisez la commande be (Activer le point d’arrêt) pour réactiver un ou plusieurs points d’arrêt désactivés.
Utilisez la commande br (Breakpoint Renumber) pour modifier l’ID d’un point d’arrêt existant.
Utilisez la commande bs (Update Breakpoint Command) pour modifier la commande associée à un point d’arrêt existant.
Utilisez la commande bsc (Mettre à jour le point d’arrêt conditionnel) pour modifier la condition sous laquelle un point d’arrêt conditionnel existant se produit.
Dans WinDbg, il existe plusieurs éléments d’interface utilisateur qui facilitent le contrôle et l’affichage des points d’arrêt. Consultez Définition de points d’arrêt dans WinDbg (classique).
Chaque point d’arrêt est associé à un nombre décimal appelé ID de point d’arrêt. Ce nombre identifie le point d’arrêt dans différentes commandes.
Commandes de point d’arrêt
Vous pouvez inclure une commande dans un point d’arrêt qui est exécuté automatiquement lorsque le point d’arrêt est atteint. Par exemple, la commande suivante s’arrête sur MyFunction+0x47, écrit un fichier de vidage, puis reprend l’exécution.
0:000> bu MyFunction+0x47 ".dump c:\mydump.dmp; g"
Note Si vous contrôlez le débogueur en mode utilisateur à partir du débogueur du noyau, n’utilisez pas g (Go) dans la chaîne de commande du point d’arrêt. Il se peut que l’interface série ne puisse pas suivre cette commande et que vous ne puissiez pas vous reconnecter à CDB. Pour plus d’informations sur cette situation, consultez Contrôle du débogueur User-Mode à partir du débogueur de noyau.
Nombre de points d’arrêt
En mode noyau, vous pouvez utiliser un maximum de 32 points d’arrêt logiciels. En mode utilisateur, vous pouvez utiliser n’importe quel nombre de points d’arrêt logiciels.
Le nombre de points d’arrêt du processeur pris en charge dépend de l’architecture du processeur cible.
Points d'arrêt conditionnels
Vous pouvez définir un point d’arrêt qui est déclenché uniquement dans certaines conditions. Pour plus d’informations sur ces types de points d’arrêt, consultez Définition d’un point d’arrêt conditionnel.
Points d’arrêt ambigus
Dans les versions 10.0.25310.1001 et ultérieures du moteur de débogueur, la résolution ambiguë des points d’arrêt est désormais prise en charge. Les points d’arrêt ambigus permettent au débogueur de définir des points d’arrêt dans certains scénarios où une expression de point d’arrêt est résolue à plusieurs emplacements. Pour plus d’informations, consultez Résolution ambiguë des points d’arrêt.
Voir aussi
Utilisation des points d’arrêt