Débogueur
Le débogueur est utile lorsque vous devez repérer des erreurs ou surveiller l'exécution de méthodes. Il vous permet d'avancer pas à pas dans le code et d'examiner les informations. Ce processus est appelé le "traçage".
Appeler le débogueur
Il existe plusieurs façons d'afficher le débogueur :
- En cliquant sur le bouton Trace dans la fenêtre des erreurs de syntaxe
- En utilisant la commande
TRACE
- En cliquant sur le bouton Debug dans la fenêtre d'exécution de méthode ou en sélectionnant le bouton Run and debug... dans l'éditeur de code
- En utilisant Alt+Shift+Clic droit (Windows) ou Ctrl+Option+Cmd+Clic (macOS) pendant l'exécution d'une méthode, puis en sélectionnant le processus à suivre dans le menu contextuel :
- En cliquant sur le bouton Trace lorsqu'un process est sélectionné dans la page Process de l'Explorateur d'exécution.
- En ajoutant un point d'arrêt dans la fenêtre de l'éditeur de code ou dans les pages Break et Catch de l'explorateur d'exécution.
Lorsqu'il est appelé, la fenêtre du débogueur fournit le nom de la méthode ou de la fonction de classe que vous êtes en train de tracer, ainsi que l'action qui a provoqué l'apparition initiale de la fenêtre du débogueur. Par exemple, dans la fenêtre du débogueur ci-dessus :
- Clients_BuildLogo est la méthode en cours de traçage
- La fenêtre du débogueur s'est affichée parce qu'elle a détecté un appel à la commande
C_PICTURE
, qui faisait partie des commandes à identifier
L'affichage d'une nouvelle fenêtre de débogage utilise la même configuration que la dernière fenêtre affichée dans la même session. Si vous exécutez plusieurs process utilisateur, vous pouvez les tracer indépendamment et avoir une fenêtre de débogage ouverte pour chaque process.
La fenêtre du débogueur est généralement affichée sur la machine où le code est exécuté. Avec une application mono-utilisateur, elle est toujours affichée sur la machine qui exécute l'application. Avec une application client/serveur, elle est affichée :
- sur le 4D distant pour le code s'exécutant localement
- sur la machine du serveur pour le code exécuté sur le serveur (par exemple, une méthode avec l'option Exécuter sur serveur).
Si le serveur fonctionne en mode headless, aucune fenêtre de débogage ne peut être affichée sur le serveur, vous devez utiliser le débogueur distant. Voir Débogage depuis des machines distantes.
Boutons de la barre d'outils
La barre d'outils du débogueur comprend plusieurs boutons, associés aux raccourcis par défaut :
Les raccourcis par défaut peuvent être personnalisés dans la page Raccourcis de la boîte de dialogue Préférences.
Reprendre exécution
Arrêt du mode Trace et reprise du cours normal de l’exécution de la méthode.
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. avec désactivation de tous les appels à TRACE suivants dans le process courant.
Exécuter pas à pas
Exécute la ligne de méthode en cours, indiquée par le compteur de programme (la flèche jaune). 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 souhaitez également tracer les appels aux sous-routines et aux fonctions, utilisez le bouton Pas à pas détaillé.
Dans le débogage distant, lors de l'exécution de la méthode sur le serveur, la méthode parente est appelée après l'exécution de la dernière ligne de méthode enfant. Si la méthode parente est exécutée du côté distant, le bouton agit de la même manière que le bouton Reprendre exécution.
Exécuter 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 Fenêtre de 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.
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.
Dans le débogage distant, lors de l'exécution de la dernière ligne de la méthode, si la méthode est exécutée sur le serveur, la méthode parente est appelée. Si la méthode parente est exécutée du côté distant, le bouton agit de la même manière que le bouton Reprendre exécution.
Pas à pas nouveau process
Lors de l’exécution d’une ligne qui crée un nouveau process (par exemple qui appelle la commande New 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.
Stopper exécution
La méthode s’arrête et vous retournez là où vous étiez avant son exécution :
- Si vous tracez 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 tracez une méthode s’exécutant à partir du mode Application, vous retournez à ce mode.
Stopper et éditer
La méthode qui s'exécute lorsque vous cliquez sur ce bouton s'ouvre dans l'