Définition et modification de points d'arrêt

De RAD Studio
Aller à : navigation, rechercher

Remonter à Comment utiliser le débogueur


Les points d'arrêt suspendent l'exécution d'un programme à un certain emplacement ou lorsqu'une condition particulière se produit. Vous pouvez définir des points d'arrêt source et des points d'arrêt chargement de module dans l'éditeur de code avant ou pendant une session de débogage. Vous ne pouvez définir des points d'arrêt données et des points d'arrêt adresse que lorsque l'application s'exécute en mode débogage (F9).

Icônes de point d'arrêt

Lors d'une session de débogage, toute ligne de code pouvant accepter un point d'arrêt est signalée par un point bleu Point bleu dans la gouttière gauche de l'éditeur de code.

Vous pouvez également définir des points d'arrêt sur les cadres affichés dans la fenêtre Pile d'appels. Les icônes de point d'arrêt de la fenêtre Pile d'appels sont similaires à celles de l'éditeur de code, à l'exception que le point bleu Point bleu dans la pile d'appels indique seulement que des informations de débogage sont disponibles pour le cadre (il n'indique pas si un point d'arrêt peut être défini sur ce cadre).

Les points d'arrêt sont affichés dans la fenêtre Liste des points d'arrêt, disponible en sélectionnant Voir > Fenêtre de débogage > Points d'arrêt.

Vous pouvez faire glisser les icônes de point d'arrêt et les déposer dans la fenêtre Editeur de code ; un point d'arrêt déplacé conserve les paramètres du point d'arrêt original. Les icônes suivantes sont utilisées pour représenter des points d'arrêt dans la gouttière de l'éditeur de code.

Icône Description

Point d'arrêt dans l'éditeur de code

Le point d'arrêt est valide et activé. Le débogueur est inactif.

Point d'arrêt dans le débogueur

Le point d'arrêt est valide et activé. Le débogueur est actif.

Point d'arrêt non valide

Le point d'arrêt est non valide et activé. Le point d'arrêt est défini sur un emplacement non valide, tel qu'un commentaire, une ligne vide ou une déclaration non valide.

Point d'arrêt désactivé

Le point d'arrêt est valide et désactivé. Le débogueur est inactif.

Point d'arrêt désactivé dans le débogueur

Le point d'arrêt est valide et désactivé. Le débogueur est actif.

Point d'arrêt incorrect dans le débogueur

Le point d'arrêt est non valide et désactivé. Le point d'arrêt est défini à un emplacement non valide.

Pour définir un point d'arrêt source

  1. Pour pré-remplir le numéro de ligne dans la boîte de dialogue, cliquez sur la ligne du source dans l'éditeur de code à l'endroit où vous voulez arrêter l'exécution.
  2. Choisissez Exécuter > Ajouter un point d'arrêt > Point d'arrêt source pour afficher la boîte de dialogue Ajouter un point d'arrêt source.

    Conseil : Pour changer la gouttière de l'éditeur de code, choisissez Outils > Options > Options de l'éditeur > Affichage et ajustez l'option Largeur de gouttière.

  3. Dans la boîte de dialogue Ajouter un point d'arrêt source, le champ Fichier est pré-rempli avec le nom du fichier, et Passes est défini sur 0 (ce qui signifie que le point d'arrêt se déclenche à la première passe). Dans le champ N° de ligne entrez la ligne de l'éditeur de code ù vous voulez définir le point d'arrêt.
  4. Pour appliquer une condition au point d'arrêt adresse, entrez une expression conditionnelle dans le champ Condition. L'expression conditionnelle est évaluée à chaque rencontre du point d'arrêt et l'exécution du programme s'arrête quand l'expression est évaluée à True.
  5. Pour associer le point d'arrêt source à un groupe de points d'arrêt, entrez le nom d'un groupe ou sélectionnez un groupe dans la liste déroulante Groupe.
  6. Pour définir les options avancées, voir la rubrique d'aide Ajout d'un point d'arrêt adresse ou d'un point d'arrêt données pour la boîte de dialogue Ajouter un point d'arrêt adresse ou Ajouter un point d'arrêt données.

    Remarque : Pour définir rapidement un point d'arrêt sur une ligne de code source, cliquez sur la gouttière de gauche de l'éditeur de code en regard de la ligne de code où vous voulez suspendre l'exécution.

Pour définir un point d'arrêt adresse

  1. Exécutez l'application en mode débogage (par exemple, utilisez F9, F8, F7 ou F4).
  2. Choisissez Exécuter > Ajouter un point d'arrêt > Point d'arrêt adresse pour afficher la boîte de dialogue Ajouter un point d'arrêt adresse.
  3. Dans le champ Adresse, entrez l'adresse en mémoire (comme $00011111) où vous voulez définir le point d'arrêt.
  4. Pour appliquer une condition au point d'arrêt adresse, entrez une expression conditionnelle dans le champ Condition. L'expression conditionnelle est évaluée à chaque rencontre du point d'arrêt et l'exécution du programme s'arrête quand l'expression est évaluée à true.
  5. Pour spécifier le déclenchement du point d'arrêt adresse seulement après un certain nombre de passes, entrez le nombre dans le champ Passes.
  6. Pour associer le point d'arrêt adresse à un groupe de points d'arrêt existant, entrez le nom du groupe dans le champ Groupe ou sélectionnez le nom d'un groupe existant dans la liste déroulante.
  7. Pour définir les options avancées, voir la rubrique d'aide Ajout d'un point d'arrêt adresse ou d'un point d'arrêt données pour la boîte de dialogue Ajouter un point d'arrêt adresse ou Ajouter un point d'arrêt données.

Remarque : Vous pouvez aussi définir un point d'arrêt adresse dans la vue CPU ou la vue Désassemblage en cliquant dans la gouttière.

Pour définir un point d'arrêt données

  1. Exécutez l'application en mode débogage (par exemple, utilisez F9, F8, F7 ou F4).
  2. Choisissez Exécuter > Ajouter un point d'arrêt > Point d'arrêt données pour afficher la boîte de dialogue Ajouter un point d'arrêt données.
  3. Dans le champ Adresse, entrez l'adresse des données devant agir en tant que point d'arrêt données.
  4. Dans le champ Longueur, spécifiez la longueur de l'opérande données constituant le point d'arrêt. Notez qu'un avertissement est affiché pour les problèmes suivants :
    • La longueur du point d'arrêt données ne doit pas traverser une frontière de paires d'octets. Un point d'arrêt données d'une longueur d'un octet n'aura pas de problème d'alignement, mais des points d'arrêt données de 2 octets et 4 octets peuvent couvrir plus ou moins d'adresses que prévu.
    • Le point d'arrêt données ne doit pas être défini sur un emplacement de pile. Le point d'arrêt peut être souvent effectif et provoquer ainsi une exécution incorrecte du programme.
  5. Pour appliquer une condition au point d'arrêt, entrez une expression conditionnelle dans le champ Condition. L'expression conditionnelle est évaluée à chaque rencontre du point d'arrêt et l'exécution du programme s'arrête quand l'expression est évaluée à True.
  6. Pour spécifier le déclenchement du point d'arrêt seulement après un certain nombre de passes, entrez le nombre dans le champ Passes.
  7. Pour associer le point d'arrêt données à un groupe de points d'arrêt existant, entrez le nom du groupe dans le champ Groupe ou sélectionnez le nom d'un groupe existant dans la liste déroulante.
  8. Pour définir les options Avancées, voir Ajout d'un point d'arrêt adresse ou d'un point d'arrêt données.

Pour définir un point d'arrêt chargement de module

  1. Choisissez Exécuter > Ajouter un point d'arrêt > Point d'arrêt chargement de module pour afficher la boîte de dialogue Ajouter un point d'arrêt chargement de module.
  2. Effectuez l'une des actions suivantes :
    • Dans le champ Nom du module, entrez le nom de la DLL, du package ou d'un autre type de module que vous voulez surveiller, ou sélectionnez un nom dans la liste déroulante, puis cliquez sur OK.
    • Cliquez sur Parcourir pour ouvrir la boîte de dialogue Sélectionner un module et parcourez les modules d'une autre plate-forme cible. Cliquez sur la liste déroulante Modules auprès du champ Nom du fichier, fet sélectionnez le type des modules que vous voulez voir :
      • Modules (*.dll, *.ocx, *.bpl, *.exe, *.dylib) {modules Windows et Mac}
      • Modules Windows (*.dll, *.ocx, *.bpl, *.exe) {seulement les modules Windows}
      • Modules OS X (*.dylib) {seulement les modules Mac}
      • Tous les fichiers (*.*)
    Cliquez sur Ouvrir pour ouvrir le module de votre choix. Le nom est automatiquement inséré dans la boîte de dialogue Ajouter ou modifier un point d'arrêt chargement de module..

Remarque : Vous pouvez aussi utiliser la fenêtre Modules pour définir un point d'arrêt chargement de module.

Quand le module spécifié est chargé lors de l'exécution du programme, le point d'arrêt chargement de module est effectif et l'exécution du programme est suspendue.

Pour conserver les points d'arrêt de session en session

Si vous définissez l'option d'auto-enregistrement Bureau du projet, les points d'arrêt que vous définissez pour un projet persisteront de session en session.

  1. Définissez les points d'arrêt (et les points de suivi) que vous voulez conserver de session en session.
  2. Sélectionnez Outils > Options > Options d'environnement.
  3. Cochez l'option d'auto-enregistrement Bureau du projet. Quand vous quittez le produit ou fermez votre projet, vos paramètres de bureau sont enregistrés dans un fichier .dsk. Quand vous rouvrez votre projet, le produit lit le fichier .dsk et restaure votre bureau, vos points d'arrêt, vos points de suivi et vos fichiers ouverts enregistrés.

Vous devez supprimer le fichier .dsk quand vous ne voulez plus que le jeu de points d'arrêt enregistré persiste dans votre projet (ainsi que les autres éléments contrôlés par l'option d'auto-enregistrement Bureau du projet).

Pour modifier un point d'arrêt

  1. Ouvrez la fenêtre Liste des points d'arrêten sélectionnant Voir > Fenêtres de débogage > Points d'arrêt. Cliquez avec le bouton droit sur l'icône du point d'arrêt que vous voulez modifier. Pour un point d'arrêt source, vous pouvez cliquer avec le bouton droit sur l'icône point d'arrêt dans la gouttière de l'éditeur de code et choisir Propriétés du point d'arrêt.
  2. Définissez les options de la boîte de dialogue Propriétés du point d'arrêt pour modifier le point d'arrêt. Par exemple, vous pouvez définir une condition, créer un groupe de points d'arrêt ou spécifier une action qui se produit quand l'exécution atteint le point d'arrêt.
  3. Cliquez sur Aide pour plus d'informations sur les options de la boîte de dialogue.
  4. Cliquez sur OK.

Pour créer un groupe de points d'arrêt

  1. Ouvrez la fenêtre Liste des points d'arrêt en choisissant Voir > Fenêtres de débogage > Points d'arrêt .
  2. Cliquez avec le bouton droit sur le point d'arrêt et choisissez Propriétés du point d'arrêt.
  3. Pour créer un groupe de points d'arrêt, entrez le nom du groupe dans le champ Groupe. Pour ajouter le point d'arrêt à un groupe existant, sélectionnez un nom dans la zone de liste déroulante.
  4. Cliquez sur OK.

Pour activer ou désactiver un point d'arrêt ou un groupe de points d'arrêt

  1. Cliquez avec le bouton droit sur l'icône point d'arrêt dans l'éditeur de code ou dans la fenêtre Liste des points d'arrêt, puis choisissez Activé pour basculer entre l'état activé et l'état désactivé. Dans la fenêtre Liste des points d'arrêt, vous pouvez cocher la case située sur la gauche de l'icône.
  2. Pour activer ou désactiver tous les points d'arrêt, cliquez avec le bouton droit sur un espace vide (et pas sur un point d'arrêt) dans la fenêtre Liste des points d'arrêt, puis choisissez Tout activer ou Tout désactiver.
  3. Pour activer ou désactiver un groupe de points d'arrêt, cliquez avec le bouton droit sur un espace vide (et pas sur un point d'arrêt) dans la fenêtre Liste des points d'arrêt, puis choisissez Activer le groupe ou Désactiver le groupe.

Conseil : Vous pouvez utiliser l'un des raccourcis suivants pour activer/désactiver des points d'arrêt :

  • Ctrl+Click sur le symbole du point d'arrêt dans la gouttière de l'éditeur de code.
    Un symbole de point d'arrêt activé, comme Breakpoint.png, se transforme en symbole de point d'arrêt désactivé, comme BreakpointDisable.png, lorsque vous utilisez Ctrl+Clic pour basculer entre les deux états.
  • Appuyez sur F5.
    Lorsque vous appuyez sur F5 au niveau d'un point d'arrêt activé, le symbole de ce point d'arrêt est supprimé. Pour le faire réapparaître et le réactiver, appuyez à nouveau sur F5.

La désactivation d'un point d'arrêt ou d'un groupe de points d'arrêt empêche la suspension du programme à cet emplacement sans pour autant supprimer les paramètres du point d'arrêt, ce qui permet de le réactiver ultérieurement.

Pour créer un point d'arrêt conditionnel

  1. Choisissez Exécuter > Ajouter un point d'arrêt et sélectionnez le type du point d'arrêt que vous voulez dans le sous-menu.
  2. Complétez les champs de la boîte de dialogue, comme décrit dans la procédure fournie plus tôt pour ce type de point d'arrêt.
  3. Dans le champ Condition, entrez une expression conditionnelle à évaluer chaque fois que ce point d'arrêt est rencontré lors de l'exécution du programme. Le point d'arrêt suspend l'exécution quand l'expression est évaluée à True.
  4. Complétez les autres champs si nécessaire.
  5. Cliquez sur OK.

Les points d'arrêt conditionnels sont utiles si vous voulez voir comment se comporte votre programme quand une variable est comprise dans une certaine étendue, ou ce qui se produit quand un indicateur particulier est défini.

Si l'expression conditionnelle est évaluée à True (ou différent de zéro), le débogueur suspend l'exécution du programme à l'emplacement du point d'arrêt. Si l'expression est évaluée à False (ou zéro), le débogueur ne s'arrête pas à l'emplacement du point d'arrêt.

Pour définir un point d'arrêt sur un thread spécifique

  1. Choisissez Exécuter > Ajouter un point d'arrêt et sélectionnez le type du point d'arrêt que vous voulez dans le sous-menu.
  2. Complétez les champs de la boîte de dialogue, comme décrit dans la procédure fournie plus tôt pour ce type de point d'arrêt.
  3. Dans le champ Thread, entrez ou sélectionnez le numéro du thread (pour les threads numérotés) ou le nom du thread (pour les threads nommés).
  4. Complétez les autres champs si nécessaire.
  5. Cliquez sur OK.

Pour associer des actions à un point d'arrêt

  1. Sur la Fenêtre Liste des points d'arrêt|fenêtre Liste des points d'arrêt, cliquez avec le bouton droit sur le point d'arrêt et choisissez Propriétés du point d'arrêt.
  2. Cliquez sur Avancées pour afficher d'autres options.
  3. Cochez les actions que vous voulez provoquer lors de la rencontre du point d'arrêt. Par exemple, vous pouvez spécifier une expression à évaluer et écrire le résultat de l'évaluation dans la fenêtre Journal d'événements.
  4. Cliquez sur OK.

Pour changer la couleur du texte au point d'exécution ou la couleur des points d'arrêt

  1. Choisissez Outils > Options > Options de l'éditeur > Couleur.
  2. Dans la fenêtre de l'exemple de code, sélectionnez l'onglet de langage approprié. Par exemple, pour changer la couleur des points d'arrêt pour le code Delphi, sélectionnez l'onglet Delphi.
  3. Parcourez la fenêtre d'exemple de code pour afficher les icônes d'exécution et de point d'arrêt dans la gouttière de gauche de la fenêtre.
  4. Cliquez n'importe où sur la ligne du point d'exécution ou du point d'arrêt que vous voulez modifier.
  5. Utilisez les listes déroulantes Couleur du texte et Couleur du fond pour changer les couleurs associées au point d'exécution ou au point d'arrêt sélectionné.
  6. Cliquez sur OK.

Remarque : Vous pouvez aussi définir des points d'arrêt dans la fenêtre Liste des points d'arrêt, la fenêtreCPU (et la vue Désassemblage), la vue Pile d'appels et la fenêtre Modules.

Voir aussi