abend aid xpediter analyse et mise au point interactive de programmes sous z/os © lcl 2009

23
Abend Aid Abend Aid Xpediter Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Upload: martin-barret

Post on 03-Apr-2015

153 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Abend AidAbend AidXpediterXpediter

Analyse et mise au point interactive de programmes sous z/OS

© LCL 2009

Page 2: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

2

Pourquoi Abend Aid et Xpediter ?

Abend Aid et Xpediter sont des outils d’aide à la mise au point complémentaires

Abend Aid doit être utilisé en premier lieu pour diagnostiquer un incident et son contexte d’apparition

Xpediter peut être utilisé pour reproduire un incident ou pour tester et mettre au point un programme

Si l’analyse d’un rapport Abend Aid ne suffit pas à diagnostiquer un incident

Si il n’y a pas d’incident, mais que le comportement d’un programme n’est pas celui qui était attendu

Page 3: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

3

Abend Aid : Généralités

Abend Aid est un utilitaire de diagnostic d’incidents qui permet de :

GÉNÉRER CONSULTER

des rapports créés lors des incidents Batch et Temps réel dans des environnements techniques du monde IBM z/OS

Produit Compuware Corporation :

Page 4: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

4

Abend Aid : Généralités

Abend Aid intercepte et effectue une première analyse des défaillances des

programmes

produit un diagnostic complet du problème sous la forme d’un rapport concis contenant :

les informations techniques permettant de « localiser » l’incident

le code concerné dans le programme source

les données nécessaires pour analyser et résoudre le problème

Abend Aid traite les abandons Batch (MVS Abendaid), CICS (CICS Abendaid/FX) et DB2

Page 5: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

5

Xpediter : Généralités

Xpediter est un débuggeur interactif qui permet de :

TESTER METTRE AU POINT

des programmes Cobol et Assembleur dans des environnements techniques du monde IBM z/OS

Produit Compuware Corporation :

Page 6: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

6

Xpediter : Principales fonctions

Identification des raisons d'une anomalie de traitement

Xpediter déroule le programme depuis son début jusqu'à l'instruction en abend, ce qui permet de suivre le cheminement qui amène à l'abandon.

En cas d'abandon système d'un programme, il est toutefois conseillé d'utiliser l'outil Abend Aid pour un premier diagnostic, puis si nécessaire de reproduire le cas sous Xpediter.

Page 7: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

7

Xpediter : Principales fonctions

Aide à la mise au point de programmes

Xpediter permet de suivre le déroulement de l'exécution d'un programme selon la logique de programmation adoptée dans celui-ci (et non selon ce que l'utilisateur pense avoir codé…)

Page 8: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

8

Xpediter : Principales fonctions

Tests de cas particuliers

Avec Xpediter, il est possible de vérifier le bon fonctionnement d'un programme dans des cas difficiles ou impossibles à produire avec un jeu d'essai

Pour ce faire, Xpediter permet notamment, en cours d'exécution d'un programme, de :

modifier le contenu des données traitées

modifier le déroulement du programme

Page 9: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

9

Xpediter sous CICS

Test en environnement CICS natif Sous le CICS, lancer ‘ XPED ’ et positionner un break point

dans le programme source à tester Lancer la transaction CICS à tester via son code L ’exécution s ’arrête au premier break point positionné

Page 10: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

10

Xpediter : Principales Commandes

Aide sur une commande Xpediter

Visualisation de l ’aide détaillée associée à une commande Xpediter

HELP commande

Page 11: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

11

Xpediter : Principales Commandes

Debugging d ’Abend

Rechercher l’origine d’un ABEND dans un programme

Détection des abends dans un programme: GO (démarrer le test)Quand l'erreur survient: LOG (accès au compte-rendu d’exécution) -ou- HELP abend-code (accès à l’aide concernant le code erreur)

Page 12: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

12

Xpediter : Principales Commandes

Debugging de logique Arrêter le déroulement d’un Programme

Poser un point d’arrêt lors de l’exécution dans un source COBOL : A (pour After : commande de ligne permettant d’arrêter le déroulement duprogramme après exécution de la ligne courante) B (pour Before : commande de ligne permettant d’arrêter le déroulement duprogramme avant exécution de la ligne courante)

Retirer un point d’arrêt posé dans un source COBOL : D (pour Delete : commande de ligne permettant de supprimer la commande depoint d’arrêt posée par A ou B sur la ligne courante)

Exécution du programme Visualiser l'exécution d'un programme : GO 1 ou <PF9> (exécuter 1 ligne de programme) : exécution en mode « pas àpas » (ligne par ligne) à chaque utilisation de GO 1 ou <PF9>- ou - GO n (avec n = nombre de lignes à exécuter avant de marquer une pause dansl’exécution des lignes de programme)- ou - GO ou PF12 (exécuter le programme jusqu’à sa fin ou jusqu’au prochainpoint d’arrêt posé dans le source du programme)

Page 13: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

13

Xpediter : Principales Commandes

Debugging de logique Visualisation / Modification des données de la Working Storage

Modifier et / ou Visualiser le contenu de la Working-Storage : PEEK donnée -ou- P, Pn (commande de ligne, n =position de la variable sur la ligne) -ou- WS (pour voir la Working-Storage entière) Essayer E, En (visualiser les éléments) Essayer H, Hn (visualiser en hexadécimal)Puis utiliser <PF6> (LOCATE *) pour retrouver le point d’exécution courant

Conserver la Visualisation / Modification de données en tête d’écran Xpediter

Conserver la visualisation / modification du contenu des données durantl'exécution du programme en tête d’écran Xpediter : KEEP donnée -ou- K, Kn (commande de ligne, n =position de la variable sur la ligne)-ou- K * (toutes les variables de la ligne)

Arrêt lors de la modification d'une variable

Exécute le programme jusqu'à ce que le contenu d’une donnée change : WHEN variable CHANGES

Arrêt lors de la valorisation d'une variable

Exécute le programme jusqu'à ce que le contenu d’une donnée soit valorisé àune valeur prédéterminée : WHEN variable = 'valeur’N.B. : Opérateurs de comparaison autorisés : =, <, >, NOT =, NOT >, NOT <

Page 14: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

14

Xpediter : Principales Commandes

Debugging de logique Supprimer toutes les Commandes Xpediter

Supprimer toutes les commandes passées sous Xpediter : DELETE ALL

Ligne Courante Se repositionner dans le source sur la ligne en cours d’exécution : LOCATE *- ou - <PF6>

Changer la Logique de programmation en modifiant les lignes de code à exécuter

Aller directement sur une ligne donnée, sans exécuter le code entre le pointcourant dans le programme et cette ligne : GOTO ligne -ou- GT (commande de ligne)‘Sauter’ l’exécution d’une ligne donnée (ne pas exécuter le code de cetteligne lors de l’exécution du programme) : SKIP ligne -ou- S (commande de ligne)

Exécution automatique et Visualisation

Visualiser l'exécution d'un programme en automatique : B - ou - A : Positionner au préalable un Break Point (avec After ou Before)sur la ligne ou l’on souhaite la fin de l’exécution automatique du programme SET DELAY 1 : pour demander un délai d'une seconde entre chaque ligne deprogramme exécutée automatiquement GO TR : lance l’exécution automatique en alimentant la trace en LOG(jusqu’au point d’arrêt posé précédemment)

Page 15: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

15

Xpediter : Principales Commandes

Debugging de logique Tracer le Flot logique Montrer les lignes où l'exécution a été arrêtée:

SHOW PREVRessortir de cet affichage par la touche de fonction <PF3>.

Détection de Boucles Trouver une boucle dans le programme: COUNT PARA GO n (n = nombre de lignes) SHOW COUNTSRessortir de cet affichage par la touche de fonction <PF3>.

Couverture de Test Pour rassembler les statistiques de l'exécution : COUNT ALL PARA (pour générer des compteurs d’exécution de chaque‘étiquette’ de paragraphe) GO SHOW COUNTSRessortir de cet affichage par la touche de fonction <PF3>.

Page 16: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

16

Xpediter : Principales Commandes

Debugging de logique Compter un nombre d’exécutions

Afficher un compteur du nombre d’exécutions d’une ligne de programme : COUNT numéro-de-ligne-COBOL -ou- C (commande à saisir sur la ligne de programme)Puis SHOW COUNTS pour visualiser tous les compteurs de lignesRessortir de cet affichage par la touche de fonction <PF3>.

Redémarrer le Test en Batch Redémarrer le Test en début de programme (valable en Batch uniquement) : RETEST

Sortie du Test Provoquer l’arrêt de l’exécution d’un programme sous Xpediter : EXIT ou PF4

Exécution en mode arrière Vérifier la logique du programme et le contenu des données: MONITOR (cette instruction marque le point de départ pour le futur moded’exécution arrière) GO REVERSE (pour inverser l'exécution) Essayer WHEN donnée pour identifier la ligne où la donnée est modifiée GO ou GO 1 RESUME (pour reprendre l'exécution à partir du point d'inversion) DELETE MONITOR (pour stopper le monitoring)

Page 17: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

17

Xpediter : Principales Commandes

Debugging de logique Atteindre une ligne de code spécifique exécutée un nombre de fois prédéterminé

Exécuter le programme jusqu'à ce qu'un certain nombre d’exécution d’uneligne de COBOL spécifique soit atteint : COUNT numéro-de-ligne-COBOL MAX n (n = pour stopper au nombre d’exécution prédéterminé)- ou - WHEN donnée = valeur (arrête l'exécution quand la condition est vraie)

Atteindre un enregistrement Exécuter jusqu'à ce qu'un certain enregistrement record soit lu: COUNT numéro-de-ligne-COBOL-du-read MAX n (n = pour stopper au numéro d'enregistrement moins 1) Exemple: Pour prendre le contrôle au 10ème enregistrement, positionner leMAX à 9. Vous stopperez après que le 9ème enregistrement soit lu et avant quele 10ème soit luou WHEN donnée = valeur (arrête l'exécution quand la condition est vraie)

Insertion de Code Ajouter des commandes XPEDITER/TSO temporaires durant le test: I n (INSERT en commande de ligne, n est le nombre de lignes à insérer) Essayer HELP INSERT pour voir la liste des commandes valides Exemple : MOVE donnée_A TO donnée_B.

Page 18: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

18

Xpediter : Principales Commandes

Debugging de logique Exécuter un Script Exécution automatique d'une liste de commandes XPEDITER/TSO :

INCLUDE nom_de_membre (Le script doit être un membre d'un PDS identifié au setup XPEDITER)

Recherche Recherche des données ou structures COBOL: FIND donnée (Rechercher la donnée dans le programme) FIND donnée ALL X (Rechercher la donnée dans le programme et n’afficherque les lignes contenant la donnée et le nombre de lignes séparant chaque lignerésultat) FIND donnée ALL X NOL (Rechercher la donnée dans le programme etn’afficher que les lignes contenant la donnée)Essayer HELP FIND pour voir la liste des commandes valides

Page 19: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

19

Xpediter : Principales Commandes

Debugging de logique Conserver l’affichage des données en table

Conserver l’affichage des données à l'intérieur d'une table: KEEP table Remplacer l'occurrence par un nombre -ou- Taper +1 à coté de l'occurrence et presser plusieurs fois sur ENTER Voir les entrées indicées d'une table: KEEP table (indice/nom-index)

Visualiser / Débuguer les sous-programmes

Visualiser le code source des sous-programmes appelés: SOURCE nom_du_sous-programme -ou- Remplacer le nom du programme par le nom du sous-programme dans la zonede messageDébuguer un des sous-programmes appelés: INTERCEPT nom_du_sous-programme (positionne automatiquement unpoint d'arrêt en début et en fin de sous-programme), puis, pour débuguer lesous-programme, positionner un point d’arrêt juste avant l’appel du sous-programme dans le programme appelant, puis exécuter en ‘pas à pas’ (GO 1 ou<PF9>) pour entrer dans le source du sous-programme et l’exécuter sousXpediter.

Afficher les touches de fonction

Afficher les touches de fonctions et les commandes associées en bas d’écran : PFSHOW ON (activer l’affichage des touches de fonction) PFSHOW OFF (désactiver l’affichage des touches de fonction)

Page 20: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

20

Xpediter : Principales Commandes

Debugging de logique Accéder au début / à la fin du source du programme

Accéder au début du listing COBOL du programme analysé via Xpediter : TOPAccéder à la fin du listing COBOL du programme analysé via Xpediter : BOTTOM

Visualiser tous les points d’arrêt positionnés sur un programme

Visualiser tous les points d’arrêts positionnés sur un programme (via lescommandes A(fter) ou B(efore)) : SHOW BREAKSIl est possible de supprimer le ou les points d’arrêts désirés en utilisant lacommande de ligne DRessortir de cet affichage par la touche de fonction <PF3>.

Visualiser toutes les conditions de type WHEN positionnées dans un programme

Visualiser toutes les conditions de type WHEN positionnées dans unprogramme : SHOW WHENIl est possible de supprimer la ou les conditions désirées en utilisant lacommande de ligne DRessortir de cet affichage par la touche de fonction <PF3>.

Page 21: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

21

Xpediter : Principales Commandes

Debugging de logique Supprimer tous les points d’arrêt positionnés sur un programme

Supprimer tous les points d’arrêts positionnés sur un programme (via lescommandes A(fter) ou B(efore)) : DELETE A (supprime tous les points d’arrêt de type ‘After’) DELETE B (supprime tous les points d’arrêt de type ‘Before’)

Accéder à l’écran de MAJ des touches de fonction Xpediter

Accéder à l’écran de mise à jour des commandes affectées aux touches defonction Xpediter : KEYSN.B. : utiliser la touche « Entrée » pour basculer de l’affichage de l’écran destouches <PF1> / <PF12> à <PF13> / <PF24> et inversementRessortir de ces écrans par la touche de fonction <PF3>.

Gestion des majuscules et des minuscules en saisie et en affichage

Utiliser la commande SET CAPS OFF pour désactiver la conversion pardéfaut des données et commandes saisies au clavier en majuscules (etconserver ainsi les données et commandes en minuscules).

Utiliser de plus la commande SET LOWCASE ASIS pour désactiverl’affichage par défaut des caractères en majuscules dans les zones visualiséessous XPEDITER, et permettre ainsi l’affichage des minuscules.

Utiliser la commande SET CAPS ON pour réactiver l’affichage par défaut descaractères en majuscules (et ne plus permettre l’affichage des minuscules).

Page 22: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

22

Xpediter : Touches de Fonction

PF1 à PF12

PF1 HELP Aide

PF2 PEEK CSR Affiche la zone de working contenant la zone présente sur la ligne pointée par lecurseur

PF3 END Arrête la fonction en cours et retourne à l’écran précédent

PF4 EXIT Sort du programme

PF5 FIND Recherche d’une donnée

PF6 LOCATE * Retour à la ligne de code en cours d’exécution

PF7 UP Affichage de la page précédente

PF8 DOWN Affichage de la page suivante

PF9 GO 1 Exécution de l’instruction suivante du programme

PF10 LEFT Décalage de l’affichage vers la gauche (de la partie pointée par le curseur)

PF11 RIGHT Affiche la partie droite d’une donnée longue (notamment d’un occurs)Avant d’utiliser la touche fonction, positionner le curseur dans la zone d’affichagedes donnéesF10 permet de se décaler vers la gauche

PF12 GO Exécution du programme jusqu’au prochain point d’arrêt ou instruction en erreur.

Page 23: Abend Aid Xpediter Analyse et mise au point interactive de programmes sous z/OS © LCL 2009

Présentation Abend Aid - XpediterPrésentation Abend Aid - Xpediter

23

Xpediter : Touches de Fonction

PF13 à PF24

PF13 HELP Aide.

PF14 FIND CSR Le curseur positionné sur une donnée, affiche la ligne suivante contenant la donnéepointée.

PF15 END Arrête la fonction en cours et retourne à l’écran précédent.

PF16 EXIT Sort du programme.

PF17 FIND IND

PF18 LOCATE * Retour à la ligne de code en cours d’exécution.

PF19 UP Affichage de la page précédente.

PF20 DOWN Affichage de la page suivante.

PF21 GO 1 Il est conseillé d’associer la commande « SWAP LIST » à cette touche afind’accéder à TSO en parallèle au test XPEDITER.

PF22 DLEFT Décalage de l’affichage vers la gauche pour la partie haute de l’écran (zones enKeep)

PF23 DRIGHT Décalage de l’affichage vers la droite pour la partie haute de l’écran (zones enKeep)

PF24 GO Il est conseillé d’associer la commande « RETRIEVE » à cette touche afin depouvoir rappeler les dernières commandes passées.