version 6.5 (Modifiée)
Le mot Débogueur provient du terme anglais bug (insecte ou punaise) qui se "traduit" en français par bogue . Une bogue dans une méthode est une erreur que vous désirez éliminer. Lorsqu'une erreur se produit dans votre code, ou lorsque vous désirez contrôler l'exécution de vos méthodes, vous utilisez le débogueur. Un débogueur vous permet de trouver les bogues en exécutant pas à pas vos méthodes et en fournissant toutes les informations nécessaires. Ce procédé s'appelle le mode Trace.
Pour appeler la fenêtre du débogueur et afficher puis tracer les méthodes, vous pouvez :
Cliquer sur le bouton Tracer dans la fenêtre d'erreur de syntaxe,
Utiliser la commande TRACE,
Cliquer sur le bouton Déboguer dans la fenêtre d'exécution de méthode.
Utiliser la combinaison Alt+Maj+clic droit (sous Windows) ou Control+Option+Commande+clic (sous Mac OS) pendant l'exécution d'une méthode, puis choisir le process à tracer dans le pop up menu qui apparaît :
Cliquer sur le bouton Tracer en mode Développement, lorsqu'un process est sélectionné dans la page Process de l'Explorateur d'exécution.
Créer ou modifier un point d'arrêt dans la fenêtre d'édition d'une méthode, ou dans les pages Point d'arrêt et Arrêt sur commande de l'Explorateur d'exécution.
Note : Lorsque vous tracez un process en cours d'exécution, la fenêtre du débogueur s'affiche instantanément. Si vous tracez un process qui n'est pas en cours d'exécution (process endormi, en attente d'événement, etc...), le débogueur "enregistre" la requête et n'apparaîtra qu'au moment où le process aura repris l'exécution du code.
Note : Si votre base de données est dotée d'un système de mots de passe, seuls le Super_Utilisateur et les utilisateurs possédant les privilèges d'accès au développement peuvent tracer des méthodes.
Voici la fenêtre du débogueur :
Vous pouvez déplacer la fenêtre du débogueur et/ou redimensionner toutes les zones internes de la fenêtre comme vous le souhaitez. L'affichage ultérieur d'une nouvelle fenêtre du débogueur reprend la configuration (taille et position de la fenêtre, emplacement des lignes de division et contenu de la zone d'évaluation des expressions) de la dernière fenêtre affichée dans la même session.
4D est un environnement multitâche. Dans le cas de plusieurs process s'exécutant simultanément, vous pouvez tracer chacun d'entre eux de manière indépendante. Chaque process peut avoir sa propre fenêtre de débogueur.
Barre d'outils de contrôle d'exécution
La barre d'outils de contrôle d'exécution, située en haut de la fenêtre du débogueur, comporte neuf boutons. Voici leur description ainsi que leurs raccourcis clavier associés :
Bouton 'Reprendre exécution'
Arrêt du mode Trace et reprise du cours normal de l'exécution de la méthode.
Note : La combinaison Maj+F5 ou Maj+clic sur le bouton Reprendre exécution provoque la reprise de l'exécution avec désactivation de tous les appels à TRACE suivants dans le process courant.
Bouton 'Stopper exécution'
La méthode s'arrête et vous retournez là où vous étiez avant son exécution. Si vous étiez en train de tracer une méthode formulaire ou une méthode objet s'exécutant en réponse à un événement, elle s'arrête et vous retournez au formulaire. Si vous traciez une méthode s'exécutant à partir du mode Application, vous retournez à ce mode.
Bouton 'Stopper et éditer'
La méthode s'arrête comme lorsque vous cliquez sur Stopper exécution. De plus, 4D affiche dans la fenêtre de l'éditeur de méthodes la méthode qui s'exécutait au moment où vous avez cliqué sur le bouton.
Conseil : Utilisez ce bouton lorsque vous connaissez les modifications à apporter à votre code, et le moment où elles doivent être effectuées pour pouvoir poursuivre le test de vos méthodes. Une fois vos modifications effectuées, ré-exécutez la méthode.
Bouton 'Editer méthode'
Ce bouton se comporte comme le bouton Stopper et éditer, à la différence près qu'il n'annule pas l'exécution en cours. L'exécution de la méthode est simplement suspendue à l'instant du clic sur le bouton. 4D affiche dans la fenêtre de l'éditeur de méthodes la méthode qui s'exécutait au moment où vous avez cliqué sur le bouton Editer méthode.
Important : Vous pouvez modifier cette méthode, mais ces modifications n'apparaîtront pas, ou ne s'exécuteront pas dans l'instance de la méthode tracée dans la fenêtre du débogueur. Ce n'est qu'une fois que la méthode aura été stoppée ou entièrement exécutée que les modifications pourront apparaître. En d'autres termes, il faut recharger la méthode pour que les modifications soient prises en compte.
Conseil : Utilisez ce bouton lorsque vous connaissez les modifications à apporter à votre code et lorsqu'elles n'interfèrent pas avec le reste du code qui doit être exécuté ou tracé.
Astuce : Les méthodes objet sont rechargées pour chaque événement. Si vous tracez une méthode objet (par exemple en réponse à un clic sur un bouton) vous n'avez pas besoin de quitter le formulaire. Vous pouvez modifier la méthode objet, sauvegarder les modifications, puis retourner au formulaire et tester à nouveau. Pour tracer/modifier les méthodes formulaire, il faut sortir du formulaire puis le réouvrir pour recharger la méthode correspondante. L'astuce est donc la suivante : lorsque vous effectuez le débogage complet d'un formulaire, placez le code que vous déboguez dans une méthode projet que vous utiliserez comme sous-routine à l'intérieur de la méthode formulaire. De cette manière, vous pouvez rester dans le formulaire, tracer, modifier et tester à nouveau votre formulaire car la sous-routine sera rechargée chaque fois qu'elle sera appelée par la méthode formulaire.
Bouton 'Enregistrer paramètres'
Ce bouton permet de sauvegarder la configuration courante de la fenêtre du débogueur (taille et position de la fenêtre, emplacement des lignes de division et contenu de la zone d'évaluation des expressions). Elle sera alors utilisée par défaut à chaque ouverture de la base.
Ces paramétrages sont stockés dans le fichier de structure de la base.
Bouton 'Exécuter pas à pas'
La ligne courante de la méthode (indiquée par la flèche jaune cette flèche s'appelle le compteur de programme) est exécutée et le débogueur passe à la ligne suivante. Le bouton Exécuter pas à pas ne passe pas dans les sous-routines et les fonctions. Il reste au niveau de la méthode que vous êtes en train de tracer. Si vous voulez également tracer les appels aux sous-routines et aux fonctions, utilisez le bouton Pas à pas détaillé.
Bouton 'Pas à pas détaillé'
Lors de l'exécution d'une ligne qui appelle une autre méthode (sous-routine ou fonction), ce bouton provoque l'affichage de la méthode appelée dans la fenêtre du débogueur, et permet au développeur de passer pas à pas dans cette méthode. La nouvelle méthode devient la méthode courante (en haut) dans la sous-fenêtre Chaîne d'appel de la fenêtre du débogueur. Lors de l'exécution d'une ligne qui n'appelle pas une autre méthode, ce bouton se comporte comme le bouton Exécuter pas à pas.
Bouton 'Pas à pas nouveau process'
Lors de l'exécution d'une ligne qui crée un nouveau process (par exemple qui appelle la commande Nouveau process) ce bouton ouvre une nouvelle fenêtre du débogueur qui vous permet de tracer la méthode de gestion du process que vous venez de créer. Lors de l'exécution d'une ligne qui ne crée pas de nouveau process, ce bouton se comporte comme le bouton Exécuter pas à pas.
Bouton 'Exécuter et sortir'
Si vous tracez des sous-routines et des fonctions, cliquer sur ce bouton vous permet d'exécuter l'intégralité de la méthode qui est en train d'être tracée, et de revenir à la méthode appelante. La fenêtre du débogueur retourne à la méthode précédente dans la chaîne d'appel. Si la méthode courante est la dernière méthode de la chaîne d'appel, la fenêtre du débogueur se referme.
Informations dans la barre d'outils de contrôle d'exécution
A la droite de la barre d'outils de contrôle d'exécution, le débogueur affiche les informations suivantes :
Le nom de la méthode que vous êtes en train de tracer (en noir).
La cause de l'ouverture du débogueur (en rouge).
Par exemple, dans la fenêtre affichée en tête de ce chapitre, vous pouvez voir les informations suivantes :
La méthode Trace démo est la méthode qui est tracée.
La fenêtre du débogueur s'affiche car il a rencontré un point d'arrêt.
Voici les causes qui provoquent l'apparition du débogueur et d'un message (en rouge) :
Commande TRACE : un appel à TRACE a été émis.
Point d'arrêt atteint : vous avez rencontré un point d'arrêt temporaire ou persistant.
Interruption demandée par l'utilisateur : vous avez activé Alt+Maj+clic droit (sous Windows) ou Control+Option+Commande+clic (sous Mac OS) ou encore cliqué sur le bouton Trace dans la page Process de l'Explorateur d'exécution.
Détection d'un appel à : Nom de la commande : Un appel à une commande 4D qui doit être interceptée est sur le point d'être exécuté.
Pas à pas nouveau process : Vous avez cliqué sur le bouton Pas à pas nouveau process et ce message est affiché par la fenêtre du débogueur ouverte pour le process qui vient d'être créé.
Les sous-fenêtres du débogueur
La fenêtre du débogueur contient la barre de contrôle d'exécution décrite précédemment, ainsi que quatre sous-fenêtres redimensionnables :
La Fenêtre d'expression
La Fenêtre de chaîne d'appel
La Fenêtre d'évaluation
La Fenêtre d'évaluation des méthodes
Les trois premières fenêtres affichent des listes hiérarchiques montrant l'information pertinente au débogage. La quatrième, la Fenêtre d'évaluation des méthodes, affiche le code source de la méthode tracée. Chaque fenêtre a un rôle précis pour vous assister dans le processus de débogage. Avec la souris, vous pouvez redimensionner la fenêtre du débogueur, ainsi que chaque sous-fenêtre. En outre, les trois premières sous-fenêtres sont séparées par une ligne pointillée dans le sens de la hauteur : vous pouvez redimensionner à votre convenance les colonnes à l'intérieur de chaque sous-fenêtre.
Référence
APPELER SUR ERREUR, Fenêtre d'erreur de syntaxe, Fenêtre d'évaluation, Fenêtre d'évaluation des méthodes, Fenêtre d'expression, Fenêtre de chaîne d'appel, Liste des points d'arrêt, Points d'arrêt sur commandes, Raccourcis du débogueur, TRACE, Un débogueur, pour quoi faire ?.