> Tech > Une vue dynamique

Une vue dynamique

Tech - Par iTPro - Publié le 24 juin 2010
email

Tous les outils que nous avons vus à ce stade sont statiques : ils examinent le programme et son code source sans l’exécuter réellement. Or, j’ai souvent constaté que pour bien comprendre un programme, rien ne vaut de le suivre pas à pas à l’exécution avec un débogueur, pour voir

Une vue dynamique

vraiment ce qui se passe. WDSc possède un débogueur iSeries intégré excellent pour cela et pour bien plus.

Vous pouvez lancer le débogueur de diverses manières à partir du RSE. Mais le mieux est d’utiliser un point d’entrée de service. C’est un point de rupture système établi sur une cible (programme, programme de service, module, ou procédure, par exemple) et qui est spécifique à un profil utilisateur i5/OS. Quand la cible est appelée par un job fonctionnant sous le profil utilisateur spécifié, le job est suspendu et le débogueur s’y rattache. Ce mécanisme fonctionne dans tous les cas, que la cible soit appelée comme un programme interactif, comme un programme batch, ou comme une procédure stockée ; ou qu’elle soit appelée à partir d’une interface Web. Les points d’entrée de service ont pour gros avantage de pouvoir être définis sur le morceau spécifique de l’application que vous voulez déboguer. Vous pouvez ensuite démarrer l’application à votre guise et le débogueur ne démarre qu’au moment où vous appelez ce morceau de l’application.

Pour établir un point d’entrée de service, faites un clic droit sur un programme ou sur un programme de service (ou un module ou procédure dans un programme ou programme de service) dans le RSE et sélectionnez Debug (Service Entry)|Set Service Entry Point. Cela met en place le point d’entrée de service et l’ajoute à la vue iSeries Service Entry Points. Au terme du débogage, vous pourrez retirer le point d’entrée de service de cette vue. Dès lors que vous êtes dans le débogueur, vous pouvez effectuer de nombreuses tâches destinées à comprendre le flux de contrôle et le comportement d’une application.

Commençons par une vue d’ensemble de la perspective debug. Dans l’angle supérieur gauche de la vue Debug. Cette vue montre tous les jobs que vous êtes en train de déboguer et, pour chacun d’eux, la pile d’appels et l’état courant. La barre d’icône pour la vue Debug contient les contrôles de débogage standard permettant de relancer un job, de suspendre un job en cours d’exécution, de mettre fin au débogueur, d’entrer dans un programme ou appel de procédure, d’avancer et de revenir. Chacune de ces opérations a un raccourci clavier correspondant dans le menu Run.

Vous pouvez examiner la valeur des variables dans votre programme par trois méthodes. Pour voir rapidement la valeur d’une variable, passez la souris dessus pour afficher la valeur courante dans une fenêtre d’aide. Pour suivre la valeur d’une variable au fur et à mesure que vous progressez dans un programme, sélectionnez la variable dans le débogueur, faites un clic droit et sélectionnez Monitor Expression dans le menu. Cette manoeuvre ajoute la variable à la vue du moniteur. A partir de là, vous pouvez voir la valeur changer au fil de votre progression dans le programme. La troisième possibilité consiste à consulter la mémoire à la recherche d’une variable ; cela peut aussi se faire à partir du menu surgissant dans le débogueur.

Avez-vous déjà vu la valeur d’une variable changer inopinément dans votre programme, sans savoir où ? C’est là que les watch breakpoints viennent à la rescousse. Un watch breakpoint est un debug breakpoint établi sur une variable au lieu d’une ligne. Quand la valeur de la variable change, le débogueur suspend l’opération et se place sur la ligne suivant la mise à jour. Faites un clic droit sur une variable dans le débogueur et sélectionnez Add Watch Breakpoint pour définir le watch breakpoint et l’ajouter à la vue du breakpoint.

Outre le point d’entrée serve et les watch breakpoints, le débogueur supporte les breakpoints ligne standard. Vous pouvez les définir dans le débogueur ou dans l’éditeur LPEX pendant l’édition du code source, avant que le débogueur ne démarre. Une fois le breakpoint ligne défini, vous pouvez le modifier dans la vue du breakpoint pour en faire un breakpoint conditionnel. La condition peut alors être liée au nombre de fois où il est activé (utile pour déboguer des boucles) ou dépendre de n’importe quelle expression booléenne (utile quand on veut s’arrêter d’après une autre condition).

Téléchargez gratuitement cette ressource

Guide des Services Managés pour se moderniser et se sécuriser

Guide des Services Managés pour se moderniser et se sécuriser

À l’heure où les talents du numérique sont rares et difficiles à séduire, comment bénéficier des meilleures compétences en infrastructure Cloud ou en cybersécurité pour gagner en agilité et en cyber-résilience ? Découvrez le Guide des Services managés dédiés aux PME.

Tech - Par iTPro - Publié le 24 juin 2010