Débogage au niveau du système avec CODB

La transaction de débogage CODB vous permet d'afficher et de modifier la mémoire.

La transaction est gérée par menu et vous permet de choisir diverses zones de données CICSplex à l'aide de touches de fonction programmables ou de mots clés de ligne de commande.

Après vous être connecté à CICS®, entrez l'ID transaction CODB pour afficher le menu principal, comme illustré dans la Figure 1. (La commande CODB peut également être entrée à partir de la commande DUMP de la transaction COD0 .)
Figure 1 : Menu de transaction de débogage CODB
 COMMAND==>            COMP ID==>      ADDR==>           ALET==> 00000000
 
          1.  XLWA
          2.  MODB
          3.  MOEB
          4.  OPB
          5.  EIS
          6.  EIB
          7.  STAKSTRT
          8.  STAKEND
          9.  MODD
         10.  MAL
         11.  PFKON
         12.  PFKOFF
         13.  END
         14.  CMASSTOP
         15.  TRACE
         16   QUES
         17   MENU
 
 P1=TOP  P2=BOTM  P3=END  P4=PREV  P5=NEXT  P6=TOKEN  P7=BACK  P8=FRWD
 P9=JUMP  P10=DSJUMP  P11=ALTER  P12=ALET/OFFSET
 MSG==>

Le premier champ est pour la commande, le second est pour un ID composant (qui est requis pour certaines commandes), le troisième est pour l'adresse (ou décalage de mode AR), et le dernier est pour un ALET ou des zéros.

Zones du menu CODB

Nom de la zone
Commande
Voir Commandes CODB.
ID COMP (ID composant)

Les commandes CODB qui affichent les blocs de contrôle CICSPlex ® SM (tels que MODB et MOEB) nécessitent que vous indiquiez un ID composant de trois caractères dans la zone ID COMP.

Pour obtenir la liste des ID de composant valides, voir Référence: Composants communs CICSPlex SM.

Une fois que vous avez spécifié un ID de composant, il reste affiché jusqu'à ce que l'une des situations suivantes se produise:
  • Un nouvel ID de composant est spécifié.
  • La zone ID COMP est vidée.
  • Un affichage de la mémoire est demandé.
  • Une commande est entrée qui ne requiert pas d'ID de composant.

Ainsi, il est possible d'afficher différents blocs de contrôle appartenant à un seul composant en établissant le composant ID puis en émettant des commandes différentes.

ADDR (Adresse)

Cette zone est destinée à l'adresse (ou au décalage de mode AR).

La saisie d'une valeur dans la zone ADDR génère un affichage de la mémoire à l'adresse indiquée, à l'aide de l'ALET en cours.

Si l'adresse est inaccessible, un message s'affiche dans la zone MSG en bas de l'écran.

L'adressage relatif est également pris en charge dans la zone ADDR. Vous pouvez entrer une quantité de défilement, en octets, sous la forme d'un nombre hexadécimal signé (+ ou-).

Exemple

ADDR==> +2D0

ALET

La saisie d'une valeur dans la zone ALET définit la valeur ALET à utiliser pour les affichages mémoire.

Cette zone est normalement remplie ; elle contient une valeur initiale de zéros hexadécimaux.

msg
La zone MSG est une zone d'une ligne dirigée par MSG == > qui apparaît sur tous les écrans. La zone MSG est utilisée pour les messages d'avertissement, d'information et d'erreur.
Remarque: Le menu CODB peut être réaffiché à tout moment à l'aide de la commande MENU.

Commandes CODB

Toute commande CODB affichée dans le menu ou son numéro associé est valide à tout moment.

Certaines commandes (telles que MODB et MOEB) affichent un sous-menu répertoriant l'ID composant et l'adresse du bloc de contrôle demandé, s'il peut être localisé. Le nom de la commande reste affiché jusqu'à ce qu'il soit remplacé par une nouvelle commande ou qu'un affichage de la mémoire soit demandé.
XLWA
Définit la zone ADDR == > sur la zone CMAS ou MAS de la zone de travail de liaison externe (XLWA) et la zone ALET = = > sur zéro, et affiche le bloc d'ancrage CICSplex.
MODB
Affiche le bloc de descripteur d'objet majeur (MODB) pour le composant spécifié.
MOEB
Affiche le bloc d'environnement d'objet majeur (MOEB) pour le composant spécifié.
OPB
Affiche le premier bloc de processus d'objet (OPB) pour le composant spécifié.
système d"information d"entreprise
Affiche le bloc de stockage d'interface EXEC CICS pour le composant spécifié.
bloc d"interface EXEC
Affiche le bloc d'interface EXEC CICS (EIB) pour le composant spécifié.
STAKSTRT
Affiche la première pile de la première transaction en cours d'exécution pour le composant spécifié.
STAKFIN
Affiche la pile en cours de la première transaction en cours d'exécution pour le composant spécifié.
MODD
Affiche le bloc de descripteur de directeur d'objet majeur (MODD) pour le composant spécifié.
MAL
Affiche le fichier MAL actuellement initialisé dans la première transaction en cours d'exécution pour le composant spécifié.
Fonction PFKON
Active les invites de la touche de fonction au bas de l'écran.
PFKOFF
Désactive les invites de la touche de fonction au bas de l'écran.
FIN
Quitte la transaction CODB.
CMASSTOP
Arrête le CMAS en postant le ECB de terminaison.
TRACE
Affiche la table de trace interne CICS non formatée.
Marques
Affiche le bloc d'ancrage de jeton de file d'attente.
Menu
Réaffiche le menu CODB.
Remarque: Les commandes MODB, MOEB, OPB, EIS, EIB, STAKSTRT, STAKEND, MODD et MAL requièrent un ID de composant.

Invites de touches de fonction

La zone d'invite de la touche de fonction contient une liste à deux lignes des touches de fonction prises en charge et une brève description de leurs valeurs.

Cette invite peut être désactivée à l'aide de la commande PFKOFF (12) et réactivée à l'aide de la commande PFKON (11).

Les touches de fonction suivantes sont activées lorsque la transaction CODB est en cours d'exécution:
  • F1 TOP (valide uniquement pour les affichages de bloc de contrôle)

    Repositionne l'écran au début du bloc de contrôle. Si l'écran a été généré par une valeur de la zone ADDR, un message d'avertissement apparaît dans la zone MSG.

  • F2 BOTTOM (valide uniquement pour les affichages de bloc de contrôle)

    Repositionne l'affichage à la fin du bloc de contrôle. Si l'écran a été généré par une valeur de la zone ADDR, un message d'avertissement apparaît dans la zone MSG.

  • F3 FIN

    Quitte la transaction CODB.

  • F4 PREV

    Selon le contenu de l'écran en cours, affiche le bloc de contrôle précédent du même type ou la liste de cache ou l'enregistrement de file d'attente précédent.

    Pour un affichage de bloc de contrôle, PREV est à la fois sensible aux commandes (bloc de contrôle) et aux composants. Si un sous-menu d'une commande de bloc de contrôle est affiché, PREV affiche le bloc de contrôle du dernier composant, s'il existe ; s'il n'existe pas, un message d'avertissement apparaît dans la zone MSG. Si le bloc de contrôle d'un composant est affiché, le bloc de contrôle du composant précédent est affiché.

    Pour un affichage de liste de cache ou d'enregistrement de file d'attente, si vous émettez PREV lorsque le premier enregistrement est affiché, un message d'avertissement s'affiche dans la zone MSG.

  • F5 SUIVANT

    En fonction du contenu de l'affichage en cours, affiche le bloc de contrôle suivant du même type ou la liste de cache ou l'enregistrement de file d'attente suivant.

    Pour un affichage de bloc de contrôle, NEXT est à la fois sensible aux commandes (bloc de contrôle) et aux composants. Si un sous-menu d'une commande de bloc de contrôle est affiché, NEXT affiche le bloc de contrôle de liaison du noyau, s'il existe ; s'il n'existe pas, un message d'avertissement apparaît dans la zone MSG. Si le bloc de contrôle d'un composant est affiché, le bloc de contrôle du composant suivant est affiché. Lors de l'affichage des OPB, NEXT parcourt la chaîne OPB de chaque composant, si elle existe, avant de passer au composant suivant.

    Pour un affichage de liste de cache ou d'enregistrement de file d'attente, si vous émettez la commande NEXT lors de l'affichage du dernier enregistrement, un message d'avertissement apparaît dans la zone MSG.

  • F6 Jeton

    Affiche soit le premier enregistrement de la file d'attente dont le QTOKEN est pointé par le curseur, soit le premier élément de liste cache dont le EPOINTER est pointé par le curseur. Les commandes NEXT et PREV peuvent être utilisées pour faire défiler vers l'avant et vers l'arrière dans la file d'attente ou la liste de cache.

  • F7 SAUVEGARDE

    Fait défiler l'affichage de la mémoire vers l'arrière d'une page complète.

  • F8 AVANT

    Fait défiler l'affichage de la mémoire vers l'avant d'une page complète.

  • F9 SAUTER

    Produit un affichage qui commence à l'adresse pointée par le curseur, à l'aide d'un ALET de zéro. L'adresse indiquée peut être la zone d'adresse, la zone d'adresse relative, la zone EBCDIC ou une adresse dans l'écran des données hexadécimales. Si la mémoire indiquée est inaccessible, un message d'avertissement s'affiche dans la zone MSG.

    Si un bloc de contrôle était affiché, JUMP efface la commande en cours et l'ID composant et établit le mode ADDR. Après une commande JUMP, il est possible de faire défiler au-delà des bornes du bloc de contrôle, même si l'adresse sélectionnée est à l'intérieur du bloc. Pour rétablir le mode de bloc de contrôle, vous devez entrer à nouveau la commande et l'ID composant voulus.

  • F10 DSJUMP

    Génère un affichage qui commence à l'adresse indiquée par le curseur, à l'aide de l'ALET affiché. L'adresse indiquée peut être la zone d'adresse, la zone d'adresse relative, la zone EBCDIC ou une adresse dans l'écran des données hexadécimales. Si la mémoire indiquée est inaccessible, un message d'avertissement s'affiche dans la zone MSG.

  • F11 ALTER

    Permet de modifier la mémoire.

  • F12 ALET/OFFSET

    Génère un affichage qui commence à la paire ALET/ADDRESS pointée par le curseur. La paire ALET/ADDRESS doit se trouver dans l'écran de données hexadécimales et le curseur doit se trouver dans la partie ALET de la paire. Si la mémoire indiquée est inaccessible, un message d'avertissement s'affiche dans la zone MSG.

Zone d'affichage de la mémoire

La zone d'affichage de la mémoire contient des représentations hexadécimales et EBCDIC de la mémoire demandée ALET / ADDRESS ou du bloc de contrôle demandé.

Chaque ligne de l'écran contient une adresse, son décalage par rapport au début de la zone (soit le début du bloc de contrôle, soit l'adresse saisie dans la zone ADDR), quatre mots complets de données au format hexadécimal et la représentation EBCDIC de ces seize octets. La Figure 2 est un exemple d'affichage de mémoire CODB.
Figure 2. Exemple d'affichage de la mémoire CODB
 COMMAND==> XLWA       COMP ID==>      ADDR==>           ALET==> 00000000
 
 00077368  00000000  020C6EC5  E8E4E7D3  D2D5D3C3  E6C1C1C2  ..>EYUXLKNLCWAAB
 00077378  00000010  01000200  000773E0  00000000  006B2F20  .......\.....,..
 00077388  00000020  00000000  0000000E  0000E888  00097820  ..........Yh....
 00077398  00000030  00077470  0000A81C  0008D000  000003B6  ......y...}.....
 000773A8  00000040  00084E90  00040000  043E0000  00000020  ..+.............
 000773B8  00000050  043E0000  FFFFF34E  8A680940  006B2F20  ......3+... .,..
 000773C8  00000060  00000000  D2D3D7C2  00085310  00085828  ....KLPB........
 000773D8  00000070  0A62AD40  0093D154  00077384  000773C4  ... .lJ....d...D
 000773E8  00000080  00000000  00000000  00000000  00346EC5  ..............>E
 000773F8  00000090  E8E4E7C5  C5E8E4D9  E7C5D3E2  01030000  YUXEEYURXELS....
 00077408  000000A0  009AFC38  03C6B150  0093D140  0093D154  .....F.&;lJ .lJ.
 00077418  000000B0  00FAB580  006C1258  A458C562  09D66631  .....%..u.E..O..
 00077428  000000C0  D7D9D4C2  000774B8  00077528  0007752C  PRMB............
 00077438  000000D0  00077530  00077534  00077548  00077544  ................
 00077448  000000E0  00077558  0007755C  0007756C  00077560  .......*...%...-
 00077458  000000F0  00077568  00077564  00077570  00000000  ................
 00077468  00000100  00000000  00000000  00000000  00097820  ................
 00077478  00000110  000988BC  00099958  0009A9F4  0009BA90  ..h...r...z4....
 00077488  00000120  0009CB2C  0009DBC8  0009EC64  0009FD00  .......H........
 00077498  00000130  000A0D9C  000A1E38  000A2ED4  000A3F70  ...........M....
 000774A8  00000140  000A500C  00000000  00000000  00000000  ..&;............
 000774B8  00000150  A458C562  09D66631  006C1258  00FAB580  u.E..O...%......
 000774C8  00000160  000000D4  00000002  E2E8E2C3  C3E5D4C3  ...M....SYSCCVMC
 000774D8  00000170  E3E2D6F1  C3E5D4C3  E6404040  C3E6E6F1  TSO1CVMCW   CWW1
 000774E8  00000180  DF80FCA0  00800000  00000000  00000000  ................
 000774F8  00000190  00000000  00000000  00000000  00000002  ................
 00077508  000001A0  04375000  00000000  00000000  00000000  ..&;............
 00077518  000001B0  00000000  00000000  00000000  00000000  ................
 00077528  000001C0  00000000  00000000  00000000  00000400  ................
 00077538  000001D0  00040000  00000002  0000001C  00000000  ................
 00077548  000001E0  C5E8E4C4  D9C5D740  00000000  00000000  EYUDREP ........
 00077558  000001F0  00000000  00000000  00000000  00000000  ................
 00077568  00000200  00000000  00000000  00000000            ............
 
 P1=TOP  P2=BOTM  P3=END  P4=PREV  P5=NEXT  P6=TOKEN  P7=BACK  P8=FRWD
 P9=JUMP  P10=DSJUMP  P11=ALTER  P12=ALET/OFFSET
Astuce: Modification de la mémoire

Les parties de données hexadécimales et EBCDIC de l'écran peuvent être modifiées. N'utilisez cette fonction qu'à la demande du service d'assistance IBM®.

Vous pouvez remplacer des données hexadécimales à l'aide de chiffres hexadécimaux valides ou des données EBCDIC à l'aide de n'importe quel caractère du clavier à l'exception du point. Après avoir écrasé les données, appuyez sur PF11 (ALTER).

Un message d'avertissement s'affiche dans la zone MSG si:
  • La mémoire est protégée.
  • Vous avez modifié l'écran mais n'avez pas appuyé sur PF11.
  • L'emplacement de la mémoire en cours de modification a été modifié depuis son affichage.

La tentative de modification de la mémoire protégée entraîne une fin anormale. La routine de reprise CODB émet un message décrivant la fin anormale sur la console.