Points d’arrêt non résolus (bu Points d’arrêt)

Si un point d’arrêt est défini pour un nom de routine qui n’a pas été chargé, le point d’arrêt est appelé point d’arrêt différé, virtuel ou non résolu . (Ces termes sont utilisés de manière interchangeable.) Les points d’arrêt non résolus ne sont associés à aucune charge spécifique d’un module. Chaque fois qu’une nouvelle application est chargée, ce nom de routine est vérifié. Si cette routine s’affiche, le débogueur calcule l’adresse codée réelle du point d’arrêt virtuel et active le point d’arrêt.

Si vous définissez un point d’arrêt à l’aide de la commande bu , le point d’arrêt est automatiquement considéré comme non résolu. Si ce point d’arrêt se trouve dans un module chargé, le point d’arrêt est toujours activé et fonctionne normalement. Toutefois, si le module est déchargé et rechargé ultérieurement, ce point d’arrêt ne disparaît pas. En revanche, un point d’arrêt que vous définissez avec bp est immédiatement résolu en adresse.

Il existe trois principales différences entre les points d’arrêt bp et les points d’arrêt bu :

  • Un emplacement de point d’arrêt bp est toujours converti en adresse. Si une modification de module déplace le code auquel un point d’arrêt bp a été défini, le point d’arrêt reste à la même adresse. D’autre part, un point d’arrêt bu reste associé à la valeur symbolique (généralement un symbole plus un décalage) qui a été utilisé, et il suit cet emplacement symbolique même si son adresse change.

  • Si une adresse de point d’arrêt bp est trouvée dans un module chargé et si ce module est déchargé ultérieurement, le point d’arrêt est supprimé de la liste des points d’arrêt. D’autre part, les points d’arrêt bu persistent après des déchargements et des chargements répétés.

  • Les points d’arrêt que vous définissez avec bp ne sont pas enregistrés dans les espaces de travail WinDbg. Les points d’arrêt définis avec bu sont enregistrés dans les espaces de travail.

Contrôle des points d’arrêt d’adresse et des points d’arrêt non résolus

Les points d’arrêt d’adresse peuvent être créés avec la commande bp (Définir le point d’arrêt) ou la commande bm (Set Symbol Breakpoint) lorsque le commutateur /d est inclus. Les points d’arrêt non résolus peuvent être créés avec la commande bu (Définir le point d’arrêt non résolu) ou la commande bm lorsque le commutateur /d n’est pas inclus. Les commandes qui désactivent, activent et modifient les points d’arrêt s’appliquent à tous les types de points d’arrêt. Les commandes qui affichent une liste de points d’arrêt incluent tous les points d’arrêt et indiquent le type de chacun d’eux. Pour obtenir la liste de ces commandes, consultez Méthodes de contrôle des points d’arrêt.

La boîte de dialogue Points d’arrêt WinDbg affiche tous les points d’arrêt, indiquant les points d’arrêt non résolus avec la notation « u ». Cette boîte de dialogue peut être utilisée pour modifier n’importe quel point d’arrêt. La zone de texte Commande de cette boîte de dialogue peut être utilisée pour créer n’importe quel type de point d’arrêt ; si le type est omis, un point d’arrêt non résolu est créé. Pour plus d’informations, consultez Modifier | Points d’arrêt. Lorsque vous définissez un point d’arrêt à l’aide de la souris dans la fenêtre De désassemblement winDbg ou la fenêtre Source, le débogueur crée un point d’arrêt non résolu.