204
47 F2 15UP Rev02 Préparation des programmes PCF Guide de l'utilisateur Aide à la mise au point (PCF) GCOS 7 Logiciel Sujet : Ce manuel combine un guide d'utilisateur et un manuel de référence concernant le logiciel d'aide à la mise au point PCF (Program Checkout Facility) pour les programmes exécutés sous GCOS 7. Observations : Remplace la révision 01 pour tous les utilisateurs de GCOS 7 V7. La révision 01 reste valable pour les utilisateurs de GCOS 7 V6. Version du logiciel : GCOS 7-AP/XPS/EXMS Version V7 (à partir de l'état technique 7254) Date : Février 95 Bull S.A. Bull HN Information Systems Inc. CEDOC Publication Order Entry Atelier de reproduction MA30/843 331, Avenue Patton BP 428 300 Concord Road 49005 ANGERS Cedex Billerica, MA 01821 FRANCE U.S.A.

Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02

Préparation des programmes

PCFGuide de l'utilisateurAide à la mise au point (PCF)

GCOS 7

Logiciel

Sujet : Ce manuel combine un guide d'utilisateur et un manuel deréférence concernant le logiciel d'aide à la mise au point PCF(Program Checkout Facility) pour les programmes exécutés sousGCOS 7.

Observations : Remplace la révision 01 pour tous les utilisateurs de GCOS 7 V7.La révision 01 reste valable pour les utilisateurs de GCOS 7 V6.

Version du logiciel : GCOS 7-AP/XPS/EXMS Version V7 (à partir de l'état technique7254)

Date : Février 95

Bull S.A. Bull HN Information Systems Inc.CEDOC Publication Order EntryAtelier de reproduction MA30/843331, Avenue Patton BP 428 300 Concord Road49005 ANGERS Cedex Billerica, MA 01821FRANCE U.S.A.

Page 2: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02

Copyright Bull S.A., 1995

Toutes les marques citées sont la propriété de leurs titulaires respectifs.

Vos suggestions sur la forme et le fond de ce manuel seront les bienvenues.Une feuille destinée à recevoir vos remarques se trouve à la fin du présent

manuel.

La loi du 11 mars 1957, complétée par la loi du 3 juillet 1985, interdit les copiesou reproductions destinées à une utilisation collective. Toute représentation oureproduction intégrale ou partielle faite par quelque procédé que ce soit, sansconsentement de l'auteur ou de ses ayants causes, est illicite et constitue unecontrefaçon sanctionnée par les articles 425 et suivants du code pénal.

Ce document est fourni à titre d'information seulement. Il n'engage pas laresponsabilité de Bull S.A. en cas de dommages résultant de son application.Des corrections ou modifications au contenu de ce document peuvent intervenirsans préavis ; des mises à jour ultérieures les signaleront éventuellement auxdestinataires.

Page 3: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02

Page 4: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 iii

Préface

Le présent manuel est à la fois un guide de l'utilisateur et un manuel de référenceconcernant le logiciel PCF (Program Checkout Facility), outil d'aide à la mise au pointpour les programmes exécutés sur DPS 7000.

La première partie (chapitres 1 à 6) constitue un guide de l'utilisateur; elle présente lesprincipales caractéristiques du logiciel. L'utilisateur est censé avoir des connaissances debase sur l'architecture DPS 7000, le système d'exploitation GCOS 7, et un langageévolué, ainsi qu'une certaine expérience de la programmation.

La seconde partie (à partir du chapitre 7) peut être considérée comme un manuel deréférence. Elle décrit PCF plus en détail, indique quelles en sont les règles d'utilisationque ce soit en traitement et télétraitement par lots, en interactif ou en transactionnel,avec des conseils pour la mise au point illustrés par des exemples.

BIBLIOGRAPHIE

Cette bibliographie est fournie à titre indicatif. Pour plus de p récis ions(disponibilité du manuel, nu méro de révis ion, indice de mise à jour), veuillez vousadresser à CEDOC ou éventuellement consulter le fascicule "Documentsnouveaux" (référence 00 F4 7210).

Langage C - Guide de l'utilisateur................................................................. 47 F2 60ULC Language User's Guide ............................................................................ 47 A2 60UL

COBOL 85 - Guide de l'utilisateur................................................................. 47 F2 06ULCOBOL 85 User's Guide .............................................................................. 47 A2 06UL

FORTRAN 77 - Guide de l'utilisateur............................................................ 47 F2 16ULFORTRAN 77 User's Guide ......................................................................... 47 A2 16UL

GPL - Guide de l'utilisateur........................................................................... 47 F2 36ULGPL User's Guide ........................................................................................ 47 A2 36UL

JCL - Guide de l'utilisateur ........................................................................... 47 F2 12UJJCL User's Guide ......................................................................................... 47 A2 12UJ

Page 5: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

4 47 F2 15UP Rev02

COBOL - Guide du programmeur TDS......................................................... 47 F2 32UTTDS COBOL Programmer's Guide...............................................................47 A2 32UT

Langage C - Guide du programmeur TDS .................................................... 47 F2 07UTTDS C Programmer's Guide.........................................................................47 A2 07UTIOF - Manuel de référence de l'utilisateur Vol. 1 : Introduction à IOF .......................................................................... 47 F2 38UJ Vol. 2 : Commandes GCL .......................................................................... 47 F2 39UJ Vol. 3 : Directives et commandes processeurs ........................................... 47 F2 40UJ GCL Manuel du programmeur .................................................................... 47 F2 36UJ

IOF Terminal User's Reference Manual Part 1 : Introduction to IOF......................................................................... 47 A2 38UJ Part 2 : GCL Commands............................................................................ 47 A2 39UJ Part 3 : Processors Commands.................................................................. 47 A2 40UJ GCL Programmer's Manuel........................................................................ 47 A2 36UJ

CONVENTIONS D'ECRITURE

Les conventions d'écriture utilisées dans ce manuel pour la syntaxe des commandes ouordres des différents langages sont les suivantes:

ELEMENT Les majuscules indiquent un nom ou un mot-clé, àintroduire tel quel.

élément Les minuscules indiquent une valeur à fournir parl'utilisateur. Le nom symbolique chiffresn représente unechaîne de chiffres décimaux de longueur maximum n.

[élément] Les crochets indiquent un élément facultatif.

{élément-1}{élément-2}{élément-3}

Une colonne d'éléments entre accolades indique que l'und'eux doit être sélectionné, si le paramètre correspondantest retenu. La valeur implicite (éventuelle) est soulignée(ici élément 3).

( ) L'utilisateur peut spécifier une seule valeur ou une liste devaleurs séparées par un espace et placées entreparenthèses.

élément... Les points de suspension indiquent que l'élément peut êtrerépété une ou plusieurs fois.

Page 6: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 v

Table des matières

1. Généralités ........................................................................................................ 1-1

1.1 OBJET ................................................................................................................... 1-1

1.2 DESCRIPTION GENERALE DE PCF ..................................................................... 1-2

1.3 UTILISATION DE PCF ........................................................................................... 1-3

1.3.1 Phase de compilation ........................................................................................... 1-31.3.2 Phase d'exécution ................................................................................................ 1-3

1.4 MISE AU POINT EN TRAITEMENT PAR LOTS .................................................... 1-4

1.5 MISE AU POINT EN MODE INTERACTIF ............................................................. 1-4

1.6 MISE AU POINT EN TELETRAITEMENT PAR LOTS ........................................... 1-5

1.7 MISE AU POINT EN TRAITEMENT TRANSACTIONNEL ...................................... 1-6

1.7.1 Mode traitement par lots ...................................................................................... 1-61.7.2 Mode interactif ...................................................................................................... 1-7

Page 7: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

vi 47 F2 15UP Rev02

2. Langage PCF .................................................................................................... 2-1

2.1 SYNTAXE DES COMMANDES PCF ...................................................................... 2-1

2.1.1 Commandes et abréviations ................................................................................ 2-12.1.2 Clauses "Quoi", "Quand" et IF ............................................................................. 2-2

2.2 SESSION PCF ....................................................................................................... 2-2

2.3 RECAPITULATION DES COMMANDES PCF ........................................................ 2-3

3. Adressage symbolique ................................................................................. 3-1

3.1 CLAUSES "QUOI" ET "QUAND" ........................................................................... 3-1

3.2 LISTE DE NUMEROS DE COMMANDES .............................................................. 3-2

3.3 EXPRESSIONS DE DONNEES .............................................................................. 3-2

3.4 CONSTANTES ....................................................................................................... 3-2

3.5 REFERENCE DE DONNEE.................................................................................... 3-2

3.5.1 Variables simples .................................................................................................. 3-33.5.2 Eléments de tableau ou de table .......................................................................... 3-33.5.3 Agrégats ................................................................................................................ 3-43.5.4 Sous-ensemble de tableau ou de table ............................................................... 3-43.5.5 Variables basées ................................................................................................... 3-43.5.6 Affichage de variables locales ............................................................................. 3-6

3.6 OPERATEURS ....................................................................................................... 3-6

3.6.1 Parenthèses .......................................................................................................... 3-63.6.2 Formats ................................................................................................................. 3-63.6.3 Opérateurs arithmétiques ..................................................................................... 3-73.6.4 Opérateurs logiques ............................................................................................. 3-73.6.5 Opérateur adresse ................................................................................................ 3-7

Page 8: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Table des matières

47 F2 15UP Rev02 vii

3.7 LISTE DE POINTS D'INTERVENTION .................................................................. 3-8

3.7.1 Etiquettes .............................................................................................................. 3-83.7.2 Numéros de lignes ................................................................................................ 3-93.7.3 Plage d'instructions .............................................................................................. 3-93.7.4 Noms de points d'intervention symboliques ...................................................... 3-103.7.5 Mise au point pas à pas ........................................................................................ 3-11

3.8 CLAUSE IF ............................................................................................................. 3-11

4. Adressage effectif ........................................................................................... 4-1

4.1 ADRESSES MEMOIRE .......................................................................................... 4-1

4.2 LISTE DE NUMEROS DE COMMANDES .............................................................. 4-2

4.3 EXPRESSIONS DE DONNEES .............................................................................. 4-2

4.4 CONSTANTES ....................................................................................................... 4-2

4.5 REFERENCE DE DONNEE.................................................................................... 4-3

4.6 OPERATEURS ....................................................................................................... 4-3

4.6.1 Parenthèses .......................................................................................................... 4-34.6.2 Opérateurs arithmétiques ..................................................................................... 4-34.6.3 Opérateurs logiques ............................................................................................. 4-4

4.7 LISTE DE POINTS D'INTERVENTION .................................................................. 4-4

4.7.1 Mise au point pas à pas ........................................................................................ 4-4

4.8 CLAUSE IF ............................................................................................................. 4-5

4.9 DESASSEMBLAGE ............................................................................................... 4-5

Page 9: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

viii 47 F2 15UP Rev02

5. Adressage semi-symbolique ...................................................................... 5-1

5.1 ADRESSES MEMOIRE .......................................................................................... 5-1

5.2 LISTE DE NUMEROS DE COMMANDE ................................................................. 5-2

5.3 EXPRESSIONS DE DONNEES .............................................................................. 5-2

5.4 CONSTANTES ....................................................................................................... 5-3

5.5 REFERENCE DE DONNEE.................................................................................... 5-3

5.5.1 Adressage semi-symbolique direct ..................................................................... 5-35.5.2 Nom symbolique ................................................................................................... 5-4

5.6 OPERATEURS ....................................................................................................... 5-4

5.6.1 Parenthèses .......................................................................................................... 5-45.6.2 Opérateurs arithmétiques ..................................................................................... 5-55.6.3 Opérateurs logiques ............................................................................................. 5-5

5.7 LISTE DE POINTS D'INTERVENTION .................................................................. 5-5

5.7.1 Mise au point pas à pas ........................................................................................ 5-5

5.8 CLAUSE IF ............................................................................................................. 5-6

6. Les commandes PCF ..................................................................................... 6-1

6.1 APPLY ................................................................................................................... 6-2

6.2 BEGIN .................................................................................................................... 6-4

6.3 CHANGE ................................................................................................................ 6-6

6.4 CHECKPOINT ........................................................................................................ 6-8

6.5 CULIB1/2/3 ............................................................................................................. 6-9

Page 10: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Table des matières

47 F2 15UP Rev02 ix

6.6 DISPLAY ................................................................................................................ 6-10

6.7 DSR........................................................................................................................ 6-11

6.8 DUMP..................................................................................................................... 6-12

6.9 END........................................................................................................................ 6-14

6.10 EXEC...................................................................................................................... 6-16

6.11 FSE ........................................................................................................................ 6-18

6.12 GOTO..................................................................................................................... 6-19

6.13 INLIB1/2/3 .............................................................................................................. 6-20

6.14 KILL ....................................................................................................................... 6-22

6.15 LIB ......................................................................................................................... 6-24

6.16 LIST ....................................................................................................................... 6-25

6.17 OUTPUT ................................................................................................................ 6-26

6.18 PAUSE ................................................................................................................... 6-28

6.19 RECOVER.............................................................................................................. 6-30

6.20 RESUME ET SUSPEND......................................................................................... 6-31

6.21 TRACE ................................................................................................................... 6-33

6.22 WHERE .................................................................................................................. 6-35

Page 11: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

x 47 F2 15UP Rev02

7. Appel de PCF en traitement par lots ........................................................ 7-1

7.1 COMMANDES SUR CARTES ................................................................................ 7-1

7.2 COMMANDES DANS UN FICHIER DISQUE SEQUENTIEL NON CATALOGUE .. 7-2

7.3 COMMANDES DANS UN FICHIER SEQUENTIEL CATALOGUE .......................... 7-2

7.4 COMMANDES DANS UNE UNITE DE BIBLIOTHEQUE ORIGINENON CATALOGUEE .............................................................................................. 7-2

7.5 COMMANDES DANS UNE UNITE DE BIBLIOTHEQUE ORIGINECATALOGUEE ....................................................................................................... 7-3

8. Appel de PCF en interactif ........................................................................... 8-1

8.1 DEFINITION D'UNE SESSION DE MISE AU POINT .............................................. 8-1

8.2 TEXTES HELP ....................................................................................................... 8-2

8.3 LANCEMENT IMMEDIAT DE PCF ......................................................................... 8-3

8.4 TRAITEMENT DES INTERRUPTIONS .................................................................. 8-3

9. Appel de PCF en télétraitement par lots ................................................. 9-1

9.1 PREPARATION D'UNE SESSION DE MISE AU POINT EN TELETRAITEMENTPAR LOTS ............................................................................................................. 9-1

9.1.1 Ordre CONSOLE ................................................................................................... 9-1

9.2 LANCEMENT DE LA SESSION ............................................................................. 9-3

9.3 DEROULEMENT DE LA SESSION ........................................................................ 9-4

9.4 TEXTES HELP ....................................................................................................... 9-4

Page 12: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Table des matières

47 F2 15UP Rev02 xi

9.5 LANCEMENT IMMEDIAT DE PCF ......................................................................... 9-5

9.6 TRAITEMENT DES INTERRUPTIONS .................................................................. 9-5

10. Appel de PCF en traitement transactionnel ........................................... 10-1

10.1 MISE AU POINT LOCALE ..................................................................................... 10-1

10.1.1 Appel par TRACE PRINT ...................................................................................... 10-110.1.2 APPEL PAR TRACE SEND .................................................................................... 10-2

10.2 MISE AU POINT A DISTANCE .............................................................................. 10-3

10.2.1 Préalables .............................................................................................................. 10-310.2.2 Procédure .............................................................................................................. 10-310.2.2.1 Connexion au terminal IOF ..................................................................................... 10-310.2.2.2 Activation du mode mise au point ........................................................................... 10-310.2.2.3 Activation de la transaction ..................................................................................... 10-310.2.2.4 Réponse dans le délai imparti ................................................................................. 10-410.2.2.5 Entrée des commandes PCF .................................................................................. 10-4

10.2.3 Restrictions ........................................................................................................... 10-410.2.4 Exemple de mise au point transactionnelle à distance ...................................... 10-5

11. Mise au point de programmes COBOL .................................................... 11-1

11.1 TYPES DE VARIABLES ......................................................................................... 11-1

11.2 LITTERAUX ........................................................................................................... 11-3

11.3 REFERENCE AUX INSTRUCTIONS ...................................................................... 11-4

11.4 EXEMPLE DE SESSION DE MISE AU POINT COBOL ......................................... 11-5

11.4.1 Exemple de commandes PCF de mise au point d'un programme COBOL ....... 11-611.4.2 Exemple de liste de programme COBOL ............................................................. 11-611.4.3 Exemple de compte rendu d'exécution de PCF pour un programme COBOL .. 11-8

Page 13: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

xii 47 F2 15UP Rev02

12. Mise au point de programmes FORTRAN .............................................. 12-1

12.1 TYPES DE VARIABLES ......................................................................................... 12-1

12.2 CONSTANTES ....................................................................................................... 12-2

12.3 REFERENCE AUX INSTRUCTIONS ...................................................................... 12-3

12.4 EXEMPLE DE SESSION DE MISE AU POINT FORTRAN ..................................... 12-4

12.4.1 Exemple de liste de programme FORTRAN ........................................................ 12-512.4.2 Exemple de commandes PCF de mise au point d'un programme FORTRAN ... 12-612.4.3 Exemple de compte rendu d'exécution de PCF pour

un programme FORTRAN .................................................................................... 12-7

13. Mise au point de programmes GPL .......................................................... 13-1

13.1 TYPES DE VARIABLES ......................................................................................... 13-1

13.2 CONSTANTES ....................................................................................................... 13-2

13.3 NOTION DE BLOC ................................................................................................. 13-3

13.4 REFERENCE AUX INSTRUCTIONS ...................................................................... 13-4

13.5 VARIABLES BASEES ............................................................................................ 13-5

13.6 EXEMPLE DE SESSION DE MISE AU POINT ....................................................... 13-6

13.6.1 Exemple de commandes PCF de mise au point d'un programme GPL ............. 13-613.6.2 Exemple de liste de programme GPL .................................................................. 13-713.6.3 Exemple de compte rendu d'exécution de PCF pour un programme GPL ....... 13-8

Page 14: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Table des matières

47 F2 15UP Rev02 xiii

14. Mise au point en adressage effectif ......................................................... 14-1

14.1 RELEVES D'IMPLANTATION DES OBJETS DE PROGRAMME .......................... 14-1

14.1.1 Relevé de données et d'instructions COBOL ...................................................... 14-214.1.2 Relevé de données et d'instructions FORTRAN ................................................. 14-214.1.3 Relevé de données et d'instructions GPL ........................................................... 14-314.1.4 Relevé de données et d'instructions en C ........................................................... 14-4

14.2 NOTATION "ISN:O FFSET" ................................................................................... 14-10

14.3 EXEMPLE DE MISE AU POINT EN ADRESSAGE EFFECTIF .............................. 14-11

14.3.1 Compte rendu d'édition de liens .......................................................................... 14-11

15. Mise au point en adressage semi-symbolique ..................................... 15-1

15.1 RELEVES D'IMPLANTATION DES OBJETS DE PROGRAMMES ........................ 15-1

15.2 REFERENCE DE DONNEE EN ADRESSAGE SEMI-SYMBOLIQUE ..................... 15-2

15.2.1 Adressage semi-symbolique direct (isn:offset) .................................................. 15-215.2.2 Noms symboliques de données externes ........................................................... 15-215.2.2.1 Relevé de données et d'instructions COBOL........................................................... 15-315.2.2.2 Relevé de données et d'instructions FORTRAN ...................................................... 15-315.2.2.3 Relevé de données et d'instructions GPL................................................................ 15-415.2.2.4 Exemple de mise au point en adressage semi-symbolique...................................... 15-515.2.2.5 Relevé de données et d'instructions en ................................................................... 15-6

16. Compte rendu d'exécution de PCF en traitement par lots ............... 16-1

16.1 COMPTE RENDU DE TRADUCTION..................................................................... 16-2

16.1.1 Compte rendu de traduction ................................................................................ 16-2

16.2 COMPTE RENDU D'EXECUTION .......................................................................... 16-3

16.2.1 Compte rendu d'exécution sous PCF en traitement par lots ............................. 16-3

Page 15: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

xiv 47 F2 15UP Rev02

17. Compte rendu d'exécution de PCF en interactif et entélétraitement par lots ................................................................................... 17-1

17.1 MESSAGES ET PREFIXES PCF ET DIALOGUE UTILISATEUR .......................... 17-1

17.2 COMPTE RENDU D'EXECUTION .......................................................................... 17-3

17.3 MENUS GCL ET MESSAGES DE GUIDAGE ......................................................... 17-4

17.3.1 Compte rendu d'exécution de PCF en interactif ................................................. 17-4

18. Compte rendu d'exécution de PCF sous TDS ...................................... 18-1

18.1 COMPTE RENDU DE TRADUCTION..................................................................... 18-1

18.1.1 Compte rendu de traduction ................................................................................ 18-2

18.2 COMPTE RENDU D'EXECUTION .......................................................................... 18-2

18.2.1 Compte rendu d'exécution sous TDS .................................................................. 18-3

19. Mise au point de programmes en langage C ......................................... 19-1

19.1 TYPES DE VARIABLES ......................................................................................... 19-1

19.2 POINTEURS DE TYPE .......................................................................................... 19-2

19.3 CONSTANTES ....................................................................................................... 19-2

19.3.1 Entiers ................................................................................................................... 19-219.3.2 Chaînes de caractères .......................................................................................... 19-319.3.3 Enumération de variables .................................................................................... 19-319.3.4 Nombres réels ....................................................................................................... 19-319.3.5 Constantes pointeur ou entrée ............................................................................ 19-4

19.4 STRUCTURE DE BLOC ......................................................................................... 19-5

19.5 RÉFÉRENCE AUX INSTRUCTIONS ...................................................................... 19-6

Page 16: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Table des matières

47 F2 15UP Rev02 xv

19.6 CROCHETS ........................................................................................................... 19-6

19.7 MAJUSCULES ET MINUSCULES ......................................................................... 19-7

19.8 EXEMPLE DE SESSION DE MISE AU POINT EN C ............................................. 19-7

20. Traitement des modules chargeables de grande taille ..................... 20-1

20.1 PROBLÈMES PROPRES AUX MODULES CHARGEABLES DEGRANDE TAILLE ................................................................................................... 20-1

20.2 TRAITEMENT DES MODULES CHARGEABLES DE GRANDE TAILLE ............... 20-2

20.3 COMMANDE SPLIT_CU ........................................................................................ 20-3

20.3.1 Syntaxe GCL (domaine IOF) ................................................................................. 20-320.3.2 Syntaxe JCL .......................................................................................................... 20-3

20.4 SPECIFICATION DE LA BIBLIOTHÈQUE CU D'ORIGINE .................................... 20-4

20.4.1 Syntaxe de la commande CULIB1/2/3 .................................................................. 20-4

20.5 LIMITES DE TAILLE .............................................................................................. 20-4

20.6 EXEMPLES ............................................................................................................ 20-5

Page 17: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

xvi 47 F2 15UP Rev02

Annexes

A. Résumé de la syntaxe PCF .......................................................................... A-1

A.1 NIVEAU SYNTAXIQUE SUPERIEUR ..................................................................... A-1

A.2 COMMANDES ........................................................................................................ A-2

A.3 NIVEAU SYNTAXIQUE INTERMEDIAIRE .............................................................. A-4

A.4 POINTS D'INTERVENTION ET RÉFÉRENCES DE DONNÉES ............................. A-5

A.5 NIVEAU SYNTAXIQUE INFERIEUR ...................................................................... A-6

B. Format des données ...................................................................................... B-1

C. Constantes, affectations, comparaisons ......................................... C-1

Glossaire ............................................................................................................................. g-1

Index .............................................................................................................................. i-1

Page 18: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Table des matières

47 F2 15UP Rev02 xvii

Illustrations

Figures

6-1 Commande APPLY................................................................................................. 6-26-2 Commande BEGIN ................................................................................................. 6-46-3 Commande CHANGE ............................................................................................. 6-66-4 Commande CHECKPOINT ..................................................................................... 6-86-5 Commande CULIB1/2/3 .......................................................................................... 6-96-6 Commande DISPLAY ............................................................................................. 6-106-7 Commande DSR..................................................................................................... 6-116-8 Commande DUMP.................................................................................................. 6-126-9 Commande END..................................................................................................... 6-146-10 Commande EXEC................................................................................................... 6-166-11 Commande FSE ..................................................................................................... 6-186-12 Commande GOTO.................................................................................................. 6-196-13 Commande INLIB1/2/3 ........................................................................................... 6-206-14 Commande KILL..................................................................................................... 6-226-15 Commande LIB....................................................................................................... 6-246-16 Commande LIST..................................................................................................... 6-256-17 Commande OUTPUT.............................................................................................. 6-266-18 Commande PAUSE ................................................................................................ 6-286-19 Commande RECOVER........................................................................................... 6-306-20 Commandes RESUME et SUSPEND...................................................................... 6-316-21 Commande TRACE ................................................................................................ 6-336-22 Commande WHERE............................................................................................... 6-3514-1 Adressage indirect .................................................................................................. 14-614-2 Adressage indirect par registre................................................................................ 14-8

Tables

2-1 Récapitulation des commandes PCF ...................................................................... 2-32-1 Récapitulation des commandes PCF (suite)............................................................ 2-43-1 Références de données symboliques...................................................................... 3-53-2 Forme des points d'intervention symboliques .......................................................... 3-1014-1 Références de données en adressage effectif......................................................... 14-917-1 Récapitulation des messages et préfixes ................................................................ 17-2B-1 Déclarations de données......................................................................................... B-2B-2 Longueur de données ............................................................................................. B-3B-3 Syntaxe des formats ............................................................................................... B-4B-4 Codes de formats.................................................................................................... B-5C-1 Syntaxe des constantes et littéraux......................................................................... C-2

Page 19: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

18 47 F2 15UP Rev02

Page 20: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 1-1

1. Généralités

1.1 OBJET

Il est extrêmement rare que l'écriture d'un programme soit parfaite au premier jet. Parmiles multiples causes possibles figurent les erreurs humaines, de saisie par exemple, etles inexactitudes au niveau de la conception ou des spécifications. En général, lacorrection et l'amélioration d'un programme se font de manière interactive. Laformulation initiale du programme est ainsi corrigée et améliorée par approchessuccessives. Toutefois, cette façon de procéder n'est pas rapide et pourrait se révélertrès coûteuse en ressources humaines et informatiques, si le programmeur ne disposaitpas de moyens appropriés pour analyser et corriger les erreurs.

PCF a donc été conçu à cet effet. Il s'agit d'un programme système résidant destiné àaider le programmeur dans la mise au point des programmes écrits pour le DPS 7000.

PCF accepte des commandes utilisateur permettant d'obtenir des fonctions devérification comme celle de vidage (DUMP) et de jalonnement (TRACE). Cescommandes se réfèrent en général à des éléments de programme origine (en COBOL,FORTRAN, GPL ou C), comme des variables ou des adresses d'instructions, devantfaire l'objet d'une vérification particulière.

Les principaux avantages de PCF sont les suivants:

• réduction du nombre de passages de compilation nécessaires à l'obtention d'unprogramme exploitable,

• méthode de mise au point dotée d'outils puissants (commande TRACE) par exemple.

• élimination des erreurs humaines de transposition de notions du langage origine enconcepts machine, qui sont source de perte de temps.

• compte rendu de mise au point clair et facile à interpréter en langage origine.

Page 21: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

1-2 47 F2 15UP Rev02

1.2 DESCRIPTION GENERALE DE PCF

Le processus de fonctionnement de PCF se décompose en trois phases.

Première phase: l'utilisateur compile ses programmes avec le paramètre DEBUG dansl'ordre JCL ou la commande GCL appropriés. Cette option indique au compilateur qu'ildoit conserver les références des éléments de programme origine. En d'autres termes, lecompilateur génère des tables de correspondance entre les numéros de lignes,étiquettes et variables du programme origine et adresses mémoire; ces tables sontincorporées aux unités compilées. Le programme subit ensuite une édition de liensnormale et peut être exécuté tel quel, sans que ses performances en soient affectées.

Deuxième phase: l'utilisateur veut lancer une session de mise au point. Pour ce faire, ilpeut soit spécifier le mot-clé DEBUG dans l'ordre JCL STEP ou la commande GCLEXEC_PG et fournir la description du fichier contenant les commandes PCF, soitspécifier l'option PCF dans la commande TRACE au cours d'une session TDS. Lescommandes PCF sont lues et interprétées et des points d'interruption sont insérés dansle programme résultant au niveau de tous les points d'intervention spécifiés. Au cours decette phase, les tables constituées pendant la compilation sont utilisées pour établir unecorrespondance entre la représentation symbolique d'un point d'intervention (étiquette ounuméro de ligne par exemple) tel qu'il est défini en langage PCF, et son adressemémoire. Le programme est enfin exécuté normalement.

Un point d'interruption est un code opération particulier DPS 7000. Lorsqu'il est atteint encours de traitement, il déclenche le mécanisme DPS 7000 de gestion des exceptions quiappelle à son tour PCF.

Troisième phase: grâce aux tables constituées au cours de la première phase et àd'autres informations internes générées au cours de la deuxième phase, PCF peuteffectuer les opérations requises. L'exécution reprend chaque fois à l'instruction qui suitle point d'interruption.

Si la première phase est omise - programme compilé sans l'option DEBUG - il est toutde même possible d'utiliser PCF. Toutefois, aucune table de références origine nepouvant être construite, l'utilisateur est obligé de préciser les adresses mémoire réellesdes objets et points d'intervention auxquels il fait référence. Il s'agit d'ADRESSAGEEFFECTIF par opposition à l' ADRESSAGE SYMBOLIQUE ou SEMI-SYMBOLIQUE(voir plus loin).

Page 22: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Généralités

47 F2 15UP Rev02 1-3

1.3 UTILISATION DE PCF

Comme indiqué précédemment, PCF se décompose en trois phases, l'utilisateurintervenant directement aux deux premières:

• phase 1: pour demander que le compilateur construise une table d'éléments deprogramme origine incorporée à l'unité compilée.

• phase 2: pour demander que des points d'interruption soient insérés dans le moduleexécutable pour déclencher le mécanisme PCF.

1.3.1 Phase de compilation

Sous GCOS 7, les programmes COBOL, FORTRAN, GPL et C peuvent être mis aupoint en adressage symbolique ou effectif. Dans ces quatre langages, la constitutiond'une table de références des éléments du programme origine est une option decompilation pouvant être demandée au moyen du mot-clé DEBUG dans l'ordre JCL ou lacommande GCL qui lance le compilateur.

Exemples:

FOR77 SOURCE=*MONPAQ, DEBUG; COBOL SOURCE=MONPROG, INLIB=MABIB, DEBUG; GPL SOURCE=PROG2, DEBUG;

1.3.2 Phase d'exécution

Si un programme a été compilé avec l'option DEBUG, l'utilisateur n'est cependant pasobligé d'employer PCF. Inversement, même si le programme n'a pas été compilé avecDEBUG, il est possible d'utiliser PCF. Toutefois, dans ce cas, aucune table deréférences de programme origine n'ayant été constituée, le mode d'adressage effectif estseul possible.

L'introduction par PCF de points d'interruption dans un module exécutable par PCF sedemande soit au moyen du mot-clé DEBUG dans l'ordre JCL STEP ou la commandeGCL EXEC_PG qui lance l'exécution du module, soit au moyen de l'option PCF dans lacommande TRACE au cours d'une session TDS. PCF est alors appelé et prêt à accepterdes entrées. En traitement par lots, les entrées sont lues dans un fichier séquentiel,tandis qu'en interactif, transactionnel ou télétraitement par lots, elles sont introduites auterminal utilisateur.

Page 23: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

1-4 47 F2 15UP Rev02

1.4 MISE AU POINT EN TRAITEMENT PAR LOTS

En traitement par lots, les commandes PCF se trouvent dans un fichier séquentiel. Ils'agit en général du paquet de cartes d'une rubrique de description d'entrées, commedans l'exemple suivant:

+--------------------------------------------------+| STEP nom-module-chargeable,description-bib-lm, || DEBUG=*CARTES; || ENDSTEP; || $INPUT CARTES; || - || - || - commandes PCF || - || - || $ENDINPUT; |+--------------------------------------------------+

De façon plus générale, les commandes PCF peuvent être lues dans n'importe quelautre fichier séquentiel, à condition de fournir une description appropriée du fichier à lasuite du mot-clé DEBUG dans l'ordre JCL STEP. On trouvera des exemples auchapitre 7.

1.5 MISE AU POINT EN MODE INTERACTIF

PCF est également utilisable sous IOF pour aider à vérifier les programmes interactifs.Dans ce cas, les commandes peuvent s'introduire au terminal utilisateur. Le paramètreDEBUG peut avoir deux valeurs :

1. la valeur implicite "TN" pour indiquer que les commandes PCF s'introduisentdirectement au terminal,

2. le nom d'un fichier séquentiel contenant les commandes PCF à lire, avant d'enaccepter d'autres au terminal.

EXEC_PG nom-module chargeable,description-bib-lm DEBUG=TN

Il est également possible d'appeler PCF à la suite d'une interruption de l'exécution (aprèsavoir appuyé sur la touche interruption du terminal). Pour ce faire, l'utilisateur doitrépondre par le paramètre DEBUG au message de guidage en cas d'interruption. Pourplus de détails, se reporter au chapitre 8.

Page 24: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Généralités

47 F2 15UP Rev02 1-5

1.6 MISE AU POINT EN TELETRAITEMENT PAR LOTS

La mise au point d'un programme traitement par lots soumis à partir d'un terminal IOF oud'une station à distance peut également s'effectuer à l'aide de PCF. Dans ce cas, lescommandes s'introduisent au terminal à partir duquel a été soumis le travail. Il est doncinutile de fournir une description de fichier à la suite du mot-clé DEBUG qui reste enrevanche nécessaire pour indiquer que l'on veut utiliser PCF. Lorsque le programme enquestion est prêt pour la mise au point, le terminal utilisateur affiche un message.L'utilisateur introduit ensuite le mot-clé DEBUG suivi du numéro de passage du travail(ron) et d'un point-virgule, comme dans l'exemple suivant:

DEBUG=Xnnn;

Le dialogue est ainsi établi entre l'utilisateur et l'activité en cours d'exécution et toutes lescommandes PCF peuvent être librement utilisées comme s'il s'agissait d'une mise aupoint en mode interactif. Pour plus de détails, se reporter au chapitre 9.

Page 25: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

1-6 47 F2 15UP Rev02

1.7 MISE AU POINT EN TRAITEMENT TRANSACTIONNEL

1.7.1 Mode traitement par lots

Il est possible de mettre au point une routine TPR de traitement de transaction enspécifiant "PCF" dans la commande TRACE au cours d'une session TDS. Lescommandes PCF sont alors introduites au terminal à partir duquel est exécutée la TPR.La fin des commandes PCF est indiquée par le mot-clé "EOD" (fin de mise au point).

Exemple:

+-----------------------------------------------------+| || || TRACE PRINT PCF; || TERMINAL IN TRACE MODE OUTPUT ON XXXXX || ENTER COMMAND || commande pcf || ENTER COMMAND || commande pcf || . || . || . || ENTER COMMAND || EOD || READY || || |+-----------------------------------------------------+

Les commandes sont lues et exécutées de la même manière que pour un programme entraitement par lots.

Page 26: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Généralités

47 F2 15UP Rev02 1-7

1.7.2 Mode interactif

Il est possible de mettre au point en mode interactif une routine TPR de traitement detransaction en spécifiant "XPCF" dans la commande TRACE PRINT avant d'activer unetransaction. Les commandes PCF en mode interactif peuvent alors lancées à partir d'unautre terminal d'où a été établie la connexion IOF avec le même ID utilisateur que celuiutilisé sur le terminal TDS. Se reporter à l'exemple suivant :

Sur le terminal TDS Sur le terminal IOF

READYTRACE PRINT XPCFTERMINAL IN TRACE OUTPUT ON xxxxMYTX

---> MYTX READY FOR DEBUGGINGS: DEBUG TX = MYTX;>>> 15:30 DEBUG 100.00((( PCT AT LN 1 ILN 1 IN MY_TPR1.... PCF AT BEGINNING OF MY_TPR1 INMYTX.... 100 D: pcf command;... 110 D: pcf command;... 120 D: go;)))

L'utilitaire de mise au point transactionnelle en mode interactif peut être appliquéséparément en spécifiant l'identificateur marketing (MI) correspondant.

Page 27: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

1-8 47 F2 15UP Rev02

Page 28: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 2-1

2. Langage PCF

2.1 SYNTAXE DES COMMANDES PCF

Le langage PCF se compose d'un certain nombre de phrases fournissant une descriptioncomplète de la session de mise au point. Une phrase PCF se présente comme suit:

[numéro-commande] verbe [clause "Quoi"][clause "Quand"][clause-IF];

Le numéro de commande est facultatif. Il peut être spécifié sous la forme d'un nombredécimal compris entre 1 et 30 000. S'il est omis, un numéro implicite est attribué. Lanumérotation automatique commence à 100 et toutes les phrases sans numéro enreçoivent un, de 10 en 10, jusqu'à 30 000 maximum.

2.1.1 Commandes et abréviations

Le verbe est obligatoire dans toute phrase PCF. C'est lui qui donne à la phrase toute sasignification. Les différents verbes possibles sont:

APPLY ou A INLIB1 ou IL1 BEGIN ou B INLIB2 ou IL2 CHANGE ou C INLIB3 ou IL3 CHECKPOINT ou CKPT KILL ou K CULIB1 LIB CULIB2 LIST CULIB3 OUTPUT ou O DISPLAY PAUSE ou P DSR RECOVER DUMP ou D RESUME ou R END SUSPEND ou S EXEC ou E TRACE ou T FSE WHERE ou W GOTO ou GO

Comme le montre cette liste, la plupart des verbes peuvent être abrégés en indiquantsimplement leur première lettre. On trouvera au tableau 2-1 une récapitulation desdifférents verbes avec leur signification.

Page 29: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

2-2 47 F2 15UP Rev02

2.1.2 Clauses "Quoi", "Quand" et IF

La clause "Quoi" définit le ou les objets auxquels s'applique le verbe, c'est-à-dire lacommande. Le tableau 2-1 indique également les clauses "Quoi" pouvant être associéesaux différents verbes.

La clause "Quand" définit les endroits où sera effectuée une intervention. Il s'agit d'uneliste de points d'intervention identifiant les points du programme où l'opération spécifiéepar le verbe doit être effectuée, quand ils sont atteints en cours de traitement.

La clause "Quand" peut être qualifiée par une autre clause, la clause IF indiquant lesconditions dans lesquelles l'opération demandée par le verbe doit être exécutée ou non.

La phrase se termine par un point-virgule.

Pour plus de détails sur les différents formats des clauses "Quoi", "Quand" et IF, sereporter au chapitre 3 sur l'adressage symbolique, au chapitre 4 sur l'adressage effectifet au chapitre 5 sur l'adressage semi-symbolique. Le chapitre 6 fournit une descriptiondétaillée des commandes ainsi que des exemples d'utilisation.

2.2 SESSION PCF

On trouvera ci-dessous un exemple type de session PCF:

APPLY IN PROCEDURE-1; DUMP PRIX, COUT, TAXE AT PARAG1, PARAG2; CHANGE PRIX=100 AT SECTION-2 IF PRIX <0; APPLY IN PROCEDURE-3; DUMP TAUX-X AT EACH-REF TAUX-X; TRACE AT ETIQ-1, ETIQ-2, ETIQ-4;

• Dans la procédure PROCEDURE-1, les variables PRIX, COUT et TAXE apparaissentsur le compte rendu d'exécution à chaque étiquette PARAG1 ou PARAG2. La variablePRIX est forcée à 100 à chaque étiquette SECTION-2 si PRIX est négatif.

• Dans la procédure PROCEDURE-3, la variable TAUX-X apparaît sur le compte rendud'exécution à chaque instruction qui la cite. Le programme est "jalonné" au niveau desétiquettes ETIQ-1, ETIQ-2 et ETIQ-4.

Page 30: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Langage PCF

47 F2 15UP Rev02 2-3

2.3 RECAPITULATION DES COMMANDES PCF

Tableau 2-1. Récapitulation des commandes PCF

CO M M ANDE Clause "Q uoi" FO NCT IO N

idem

idem

Aff iche le program m e orig ine.

Appelle l'Editeur ple in écran FSE.

Désigne une bibliothèque d'entrée pour FSE.

Les com m andes indiquées s'appliquentà la procédure ou au bloc m entionné .

A ffecte une nouv elle v aleur aux donnéesspécif iées, aux points indiqués.

A rrête la m ise au point du program m e etrelance la session depuis le début.

Défin it un poin t de rep rise pour la sessionen cours.

Désigne une bibliothèque d'entréecontenant des CU non allégés.

A ff iche les f ichiers affectés par les com m andes PCF CULIB1/2/3, IN LIB1/2/3 et LIB .

A ff iche les données spécif iées, aux pointsindiqués.

A rrête prém aturém ent l'exécution auxpoints indiqués.

Exécute les com m andes PCF lues dans lef ichier indiqué.

E ffectue un branchem ent au point indiqué ou relance l'exécution.

Sans objet

Sans objet

Description de f ichier

idem

idem

Inutilisé

Sans objet

Description de f ichier

Sans objet

Point d 'interv en tion

Description de f ichier

Expressions de données av ecform ats facultatifs

Num éros des lignes duprogram m e orig ine

A ffecta tion de v a leur à desréférences de données

Num éros de com m andesPCF

CULIB1

CULIB2

CULIB3

DISPLAY

DSR

END

EXEC

FSE

APPLYA

BEG INB

CHANG EC

CHECK-PO INTCKPT

DUM PD

G O TOG O

INLIB1IL1

Page 31: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

2-4 47 F2 15UP Rev02

Tableau 2-1. Récapitulation des commandes PCF (suite)

CO M M AND E Clause "Q uo i" F O N CT IO N

Désigne une b ib lio thèque d 'entré e pour FSE.

Désigne une b ib lio thèque d 'entré e pour FSE.

Désigne une b ib lio thèque de sortie pour F SE.

Suspend l'exécution aux po in ts ind iqués.

Supprim e les com m and es spéci f iées, aux points indiqués.

A f fiche les com m andes spéc ifiées, aux pointsindiqués.

D irige le com pte rendu d'ex écution de P CFv ers le fich ie r indiqué.

Spécifie une action correctrice pour certainsincidents d 'exécution.

Débloque les com m andes PCF spéc if iées, auxpoints indiqués.

Débloque les com m andes PCF spéc if iées, auxpoints indiqués.

Jalonne le program m e au n iv eau des pointsindiqués.

A f fiche le contex te des points d'in terv entionindiqués.

Description de fich ie r

Description de fich ie r

Description de fich ie r

Description de fich ie r

Sans obje t

Nom s des incidents

Sans obje t

Sans obje t

Num éro s de com m andesPCF

Num éro s de com m andesPCF

Num éro s de com m andesPCF

Num éro s de com m andesPCF

LIB

RECO VER

INLIB2IL2

INLIB3IL3

KILLK

LISTL

O UTP UTO

PAU SEP

RES UM ER

SUS PEN DS

TRA CET

W HEREW

Page 32: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 3-1

3. Adressage symbolique

3.1 CLAUSES "QUOI" ET "QUAND"

Ce chapitre décrit la forme des clauses "Quoi" et "Quand" dans une phrase PCF enadressage symbolique. Les différents modes d'adressage (symbolique, effectif et semi-symbolique) ne sont traités séparément que dans un souci de clarification. En effet, tousles modes d'adressage peuvent être utilisés dans une même commande PCF, bien quele cas ait peu de chances de se présenter.

En adressage symbolique, un objet de programme est désigné par le nom qu'il porte enlangage origine.

La clause "Quoi" peut comporter :

• une liste de numéros de commandes PCF,• une expression contenant des références de données,• d'autres éléments particuliers, des noms de fichiers, par exemple.

La clause "Quand" est une liste de points d'intervention éventuellement qualifiée par uneclause IF. Ce chapitre indique comment spécifier des listes de numéros de commandes,des références de données, des listes de points d'intervention et des clauses IF, enadressage symbolique. Le chapitre 5 présente les autres types de clauses "Quoi", ainsique la manière de construire des phrases réelles à partir de ces concepts de base.

Page 33: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

3-2 47 F2 15UP Rev02

3.2 LISTE DE NUMEROS DE COMMANDES

Comme indiqué au chapitre 2, les commandes PCF sont identifiées par des numérosspécifiés par l'utilisateur ou fournis par le système. Pour certaines commandes PCF(APPLY, KILL, LIST, RESUME et SUSPEND), la clause "Quoi" est obligatoirement uneliste de numéros de commandes.

Une liste de numéros de commandes est constituée d'éléments séparés par des virgules,chaque élément étant un numéro de commande sous forme décimale, ou une plage denuméros de commandes indiquée sous la forme de deux nombres décimaux séparés parle mot-clé TO. La liste suivante fournit des exemples de numéros de commandescorrects:

10 10, 20 10 TO 15 10, 12, 17, 21, 32 15 TO 20, 25, 27, 35 TO 40 1 TO 10, 100 TO 127

3.3 EXPRESSIONS DE DONNEES

Dans de nombreuses commandes PCF, la clause "Quoi" exprime des opérations àeffectuer sur des expressions de données. La forme la plus simple d'expression est uneconstante ou une référence de donnée.

3.4 CONSTANTES

Tous les types de constantes possibles COBOL, FORTRAN, GPL ou C sont autorisésdans les expressions de données PCF.

Exemples:

6 "09AB"X 10.1 "CHAINE" +223 -7E8 "001"B .T. +0.006D+17 .3Q-04

3.5 REFERENCE DE DONNEE

Une référence de donnée est un objet désigné par le nom qu'il porte dans le programmeorigine. Elle peut prendre différentes formes résumées dans le tableau 3-1 et décrites ci-dessous.

Page 34: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Adressage symbolique

47 F2 15UP Rev02 3-3

3.5.1 Variables simples

Une variable simple (comme une donnée élémentaire COBOL ou une variable scalaireFORTRAN) est désignée par le nom sous lequel elle est déclarée ou utilisée dans leprogramme.

Si le nom est introduit par une chaîne numérique ou contient un trait d'union, il doit êtreencadrés par des apostrophes.

Exemples:

I K MAVARIABLE '10nom' INPUT-AREA X_REF PRIX

Afin de supprimer toute ambiguïté, il est parfois nécessaire de qualifier un nom devariable simple lors de la mise au point de programmes COBOL ou GPL. Une variable Xd'un sous-groupe Y du groupe Z, par exemple, désignée en COBOL par X OF Y IN Z,sera utilisée sous cette même forme sous PCF. Les utilisateurs GPL disposent d'uneconvention particulière permettant de désigner cette même variable par Z.Y.X.

Exemple:

1 GROUP1, {X, lorsqu'il n'y a pas 2 Y ... {d'ambiguïté 3 ST ... {ou ST.X 4 X ...--->peut être désigné par {ou X IN ST 2 T ... {ou X OF ST {ou Y.ST.X {ou X IN ST IN Y {ou GROUP1.Y.ST.X {ou X OF ST IN Y OF GROUP1 {etc.

3.5.2 Eléments de tableau ou de table

Un élément de tableau ou de table est désigné par le nom du tableau ou de la table,éventuellement qualifié comme indiqué ci-dessus, et suivi d'une liste d'indices donnantles coordonnées de l'élément en question.

Le nombre d'indices est limité à 7 en COBOL et en FORTRAN et à un seul en GPL. Cesindices peuvent être des entiers ou une expression de données à valeur d'entier.Exemples de références d'éléments de table ou de tableau correctes:

A(1) XA OF B IN Z (3,2)B(2,7,3) A OF B(X OF C,2)A.B.C(3) A(A(2))

La référence à des indices désignant des éléments en dehors des limites des tables oudes tableaux donne lieu à un message de diagnostic PCF.

Page 35: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

3-4 47 F2 15UP Rev02

3.5.3 Agrégats

PCF autorise les références à des agrégats. Ils sont de deux types : groupes et tableauxou tables.

• les groupes sont désignés par un nom de sous-groupe ou de groupe COBOL ou GPL,éventuellement qualifié afin d'éviter toute ambiguïté.

Exemples:

GROUP1 ST OF Y GROUP1.Y Y IN GROUP1

• les tableaux ou tables sont désignés par leur nom qui peut être qualifié afin d'évitertoute ambiguïté.

Exemples:

A A.T.X B X OF T IN A

3.5.4 Sous-ensemble de tableau ou de table

Un sous-ensemble de tableau ou de table est désigné de la même manière qu'unélément de tableau ou de table en remplaçant un ou plusieurs indices de la liste par uneplage d'indices. Cette plage est spécifiée sous la forme de deux indices séparés par lemot-clé TO ou par deux points (:).

Exemples:

A(3 TO 7) A(3:7)B(2,1 TO 6, 2) B(2, 1:6, 2)T.X(1:5, 2 TO 7, 3:4)X OF T(1 TO 5, 2 TO 7, 3 TO 4)X OF T(1, I:J, 7)A(I:J)

3.5.5 Variables basées

PCF autorise les références à des variables basées GPL. Lorsque ces variables sontassociées à une base implicite par la déclaration suivante:

DCL X BASED (P)...

Une simple référence au nom déclaré donne accès aux données, comme c'estnormalement le cas en GPL. Lorsqu'aucune base implicite n'est déclarée ou lorsqu'ils'agit d'une expression, il faut spécifier une base explicite sous la forme:

expression de données -> nom

Le premier terme peut être n'importe quelle expression de données fournissant unevaleur de pointeur et le second, une référence à une variable basée. Il peut y avoirplusieurs niveaux d'adressage indirect.

Page 36: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Adressage symbolique

47 F2 15UP Rev02 3-5

Exemples:

P->XP.Q(2)->X.YP->Q->S(2)

Avec PCF, il est également possible de lire une variable non basée à une adressespécifiée par l'utilisateur, au moyen d'une expression pointant sur cette variable, sous laforme:

expression de données -> nom

"expression de données" est un pointeur et "nom", une variable non basée.

Tableau 3-1. Références de données symboliques

REFERENCEDE DO NN EE

FO RM E EXEM PLES

Variable sim ple

Agrégat

Variables basées

E lém ent de tab leou de tableau

Sous-ensem b le detableau ou de table

Nom d'une v ariable scalaire ou du de rnierélém ent d 'un groupe, év entuellem en t quali f ié af in d 'év iter toute am biguïté.

Nom de la table ou du tableau, év entuellem ent qualif ié,et suiv i d 'une liste d 'indices entre parenthèses.

Nom d'un groupe ou d 'un sous-groupe , ou bien d 'untableau ou d 'une table, év entuellem ent qualif ié et sansindices

Com m e pour la référence à un élém ent de tableau oude table, en rem plaçant un ou plusieurs indices par uneplage d'indices séparés par deux po ints ( :) ou TO .

Toute form e ci-dessus, précédée d'une référence dedonnée fournissant un pointeur et du sym bole -> .

AX.Y .Z .Z IN Y O F X

B (3,2)C O F X(3,7)A .B.C (I,J)

C O F XG RO UP1TABLE IN G RO UP

B(1 TO 8)B O F C(1 TO 8)C .D(1:8,2,I:J)H IN TB(1:2, I)

PT ->APT->Q T->A .BQ ->B(1)

Page 37: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

3-6 47 F2 15UP Rev02

3.5.6 Affichage de variables locales

L'argument "LOCAL_VARIABLES" (ou L_V) de la commande DUMP permet d'affichertoutes les variables locales de la procédure courante, la syntaxe utilisée étant :

DUMP {LOCAL_VARIABLES } {L_V }

Si une procédure contient une variable dont le nom est LOCAL_VARIABLES ou L_V,toute référence à ce nom doit être protégée par des guillemets.

Exemples :

DUMP L_V; Affiche toutes les variables locales de la procédure courante.

DUMP "L_V"; Affiche la variable locale appelée L_V.

3.6 OPERATEURS

3.6.1 Parenthèses

Toutes les expressions de données peuvent être mises entre parenthèses.

Exemples:

(A)(P->Q)(B(2,3)) (GROUP1.X.Y)

3.6.2 Formats

Un format peut être spécifié à la suite d'une expression de données pour indiquer qu'elledoit être interprétée comme étant d'un type et, éventuellement, d'une longueur différentsde ceux déclarés dans le programme origine. Un format consiste en une chaîne decaractères précédée du symbole numéro (#). Cette chaîne commence par un codealphabétique éventuellement suivi de qualificateurs (nombres décimaux et points). Parexemple, X est le code correspondant à une chaîne hexadécimale; si #X4 suit uneréférence de donnée dans une commande DUMP, la variable indiquée doit être affichéesous la forme d'une chaîne hexadécimale de quatre octets. Les codes applicables et lasignification des qualificateurs associés sont répertoriés à l'annexe B.

Page 38: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Adressage symbolique

47 F2 15UP Rev02 3-7

3.6.3 Opérateurs arithmétiques

Les opérateurs "+" et "-" peuvent apparaître dans une expression de données de formemonadique ou dyadique.

Exemples:

X+1 A(I+J,7) ((P#LB)+("AAAA"#LB))#P->Q Y-5 B(2:5)+C(3:6)

Remarque : Afin d'éviter tout risque de confusion entre signe moins et traitd'union, la variable peut être mise entre guillemets et/ou le signemoins entre espaces.

Exemple:

A - B ( pour A moins B) et "A-B" (pour la variable "A-B")

3.6.4 Opérateurs logiques

Une expression de données peut contenir les opérateurs logiques suivants:

NOT, ^, =, >< ,<=, >=, EQ, NE, GT, LT, GE, LE, AND, OR, &, !

Exemples:

A&B NOT(X_COND!Y_COND) X>4 Y^=(A+10)

3.6.5 Opérateur adresse

L'opérateur adresse & permet d'obtenir l'adresse réelle d'une référence de donnéesymbolique, la syntaxe étant :

& référence-symbolique

Cette référence ne prend pas en compte l'anneau ou l'étiquette qui dépendent ducontexte de la référence de donnée et non pas de la donnée proprement dite.

Cette méthode ne permet pas d'obtenir l'adresse réelle de variables basées, de littérauxou d'expressions de données qui ont été calculées au moyen d'opérateurs arithmétiquesou logiques.

Page 39: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

3-8 47 F2 15UP Rev02

Exemple :

DUMP &NOM_LOCAL;

3.7 LISTE DE POINTS D'INTERVENTION

Une liste de points d'intervention sert à spécifier la clause "Quand" d'une commandePCF. Cette clause est introduite par le mot-clé AT et peut être qualifiée par une clauseIF (voir ci-dessous). Une liste de points d'intervention se compose de plusieurs pointsséparés par des virgules. Ils peuvent prendre l'une des quatre formes suivantes:

• étiquettes,• numéros de ligne,• plage d'instructions,• noms symboliques.

Ces formes sont résumées par le tableau 3-2.

3.7.1 Etiquettes

Une étiquette sert à identifier une partie de code exécutable. Cette notion correspondaux concepts de section et de paragraphe en COBOL et aux étiquettes en FORTRAN,GPL et en C. Les étiquettes sont désignées par le nom qu'elles portent dans leprogramme origine. Il s'agit donc d'une combinaison de lettres, chiffres, traits d'union,soulignés et, éventuellement, d'autres caractères spéciaux tels qu'ils sont définis dansles langages origine correspondants.

Exemples:

ETIQ-1 ETIQ99 12-OUVERTURE 100 9999

Page 40: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Adressage symbolique

47 F2 15UP Rev02 3-9

3.7.2 Numéros de lignes

Il y a deux manières de spécifier une ligne par son numéro : en utilisant soit le numérode ligne externe, soit le numéro de ligne interne généré par le compilateur. Le numérode ligne interne a la forme suivante :

ILN numéro

Le format général d'un numéro de ligne externe est:

| LINE || | numéro-ligne [* rang]| LN |

Le numéro de ligne est précédé du mot-clé LINE ou de sa forme abrégée LN.

• numéro-ligne identifie une ligne du programme origine. Il s'agit généralement d'unnombre décimal, mais il existe également des représentations plus complexes avecpoints et nombres décimaux. Celles-ci sont décrites aux chapitres 11 pour le COBOL,12 pour le FORTRAN, 13 pour le GPL et 20 pour le langage C.

• le rang peut être utilisé avec des langages autorisant plusieurs instructions par ligne. Ils'agit d'un nombre décimal indiquant le rang de l'instruction désirée sur la lignedésignée.

Exemples :

LINE 10 LN 1000*2 LN 100.2 LINE 1000..2*2

3.7.3 Plage d'instructions

Une plage d'instructions est spécifiée au moyen de deux étiquettes ou de deux numérosde lignes séparés par le mot-clé TO.

Exemples :

100 TO 200 PARAG-1 TO PARAG-3 LINE 1110 TO 1200 LN 1000*1 TO 1100*5 LN 11200..10 TO LN 11200..20*6 ILN 100 TO ILN 110 LINE 10.1 TO ILN 210

Page 41: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

3-10 47 F2 15UP Rev02

3.7.4 Noms de points d'intervention symboliques

Il est possible d'utiliser des noms symboliques pour spécifier des clauses "Quand"spéciales :

• ALL-LABELS (synonymes : A-L, ALL_LABELS et A_L) pour désigner toutes lesinstructions portant une étiquette.

• POST-MORTEM (synonymes : P-M, POST_MORTEM et P_M) pour désigner la finnormale ou anormale de l'exécution.

• EACH-REF (synonymes : E-R, EACH_REF et E_R) pour désigner toutes lesinstructions citant une variable donnée ou une étiquette. Par exemple, la commandeDUMP A AT E-R X; affiche la variable A à toutes les instructions citant la variable X.

Tableau 3-2. Forme des points d'intervention symboliques

FO RME EXEMPLESPOINTD 'INT ERVENT IO N

Etiquette

Ligne interne

Num éro de ligne

Plage d'instructions

ALL-LABELS

PO ST-M ORTEM

EACH-REF

Instruction sur uneligne

Synonym es : A -L, ALL_LABELS et A_L.

Synonym es : P -M , POST_MOR TEM et P_M.

Synonym es : E -R , EACH_REF et E_R. Le m ot-cléest suiv i d'un nom de donnée ou d 'étiquette.

Deux étiquettes ou num éros de lignes (avec rangév entuel d'instruction) , séparés par le m ot-clé TO.

Num éro de ligne , com m e ci-dessus, suiv i d'unastérisque et du rang de l'instruction sur la ligne.

Mot-clé LINE ou LN suiv i d'un num éro de lignereprésenté par des nom bres décim aux et des points.

Mot-clé ILN su iv i d'un num éro de ligne interne généré par le com pilateur, sous form e de nom bre décim al.

Nom d'étiquette en langage origine, de paragrapheou de section.

_

_

SECTIO N-1999988-PARAG

ILN 200ILN 121

LINE 1000LN110..20LN10.10.20

LINE 1000*2LN110..20*2LN100.10.20*3

120 TO 125LAB-1 TO LAB-3LN 100 TO LN 110

E_RXE-R A O F BE-R ETIQ-FIN

Page 42: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Adressage symbolique

47 F2 15UP Rev02 3-11

3.7.5 Mise au point pas à pas

Une syntaxe particulière de la liste des points d'intervention permet d'effectuer une miseau point pas à pas en adressage symbolique :

AT {EACH_LINE } {E_L }

L'action spécifiée s'effectue pour chaque ligne du programme origine.

3.8 CLAUSE IF

La clause IF sert à qualifier une liste de points d'intervention. Lorsque le traitementatteint un de ces points, la condition spécifiée est examinée. Si elle est satisfaite,l'opération indiquée est exécutée. Sinon, il ne se passe rien.

L'exemple suivant illustre le format de la clause IF en adressage symbolique.

Exemple :

IF expression_logique

"expression_logique" est une expression de données de type logique.

L'expression /SEV indique le code système de gravité d'erreur. Elle s'utilise en particulierpour les vidages post mortem, où des variables ne seront affichées qu'en cas d'arrêtanormal pour raison grave.

Exemple :

DUMP X, Y, Z AT P-M IF /SEV > 2;

L'expression /COUNT indique qu'un compteur est associé au point d'intervention. Il estinitialement positionné à zéro, puis progresse de 1 chaque fois que le traitement atteintce point d'intervention. Il peut, par exemple, servir à n'exécuter une commande qu'àpartir de la énième exécution d'une instruction:

DUMP X AT ETIQ-1 IF /COUNT > 15;

Page 43: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

3-12 47 F2 15UP Rev02

Page 44: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 4-1

4. Adressage effectif

Ce chapitre décrit la forme des clauses "Quoi" et "Quand" d'une commande PCF enadressage effectif.

4.1 ADRESSES MEMOIRE

En adressage effectif, un objet de programme origine est désigné par une adresseindiquant sa position en mémoire virtuelle. Cette adresse se présente sous la formesuivante :

?stn.ste.sra

• stn représente le numéro de la table de segments, sous forme de nombrehexadécimal d'un caractère,

• ste représente la rubrique de la table de segments, sous forme de nombrehexadécimal d'un ou deux caractères,

• sra représente l'adresse relative par rapport au début du segment, sous forme denombre hexadécimal d'un à six caractères.

Pour indiquer une adresse mémoire, stn peut être omis, seul ou en même temps que ste.Dans ce cas, c'est la dernière valeur utilisée dans ce contexte qui s'applique.

Exemples :

?8.18.374 ?19.274 équivaut à ?8.19.274 ?43E équivaut à ?8.19.43E

Avec PCF, la clause "Quoi" peut comporter:

• une liste de numéros de commandes PCF,• une expression contenant des références de données,• d'autres éléments particuliers comme des noms de fichiers, de commandes, etc.

La clause "Quand" est une liste de points d'intervention éventuellement qualifiée par uneclause IF.

Page 45: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

4-2 47 F2 15UP Rev02

Ce chapitre indique les formes utilisées pour spécifier une liste de numéros decommandes, des références de données, une liste de points d'intervention et une clauseIF, en adressage effectif.

Le chapitre 5 présente les autres types de clauses "Quoi" et la manière de construire desphrases réelles à partir de ces concepts de base.

4.2 LISTE DE NUMEROS DE COMMANDES

Comme on l'a vu au chapitre 2, les commandes PCF sont identifiées par un numérospécifié par l'utilisateur ou fourni par le système. Pour certaines commandes PCF(APPLY, KILL, LIST, RESUME et SUSPEND), la clause "Quoi" est obligatoirement uneliste de numéros de commandes.

Une liste de numéros de commandes est constituée d'éléments séparés par des virgules,chaque élément étant un numéro de commande sous forme de nombre décimal ou uneplage de numéros de commandes sous la forme de deux nombres décimaux séparés parle mot-clé TO. La liste suivante fournit des exemples de numéros de commandescorrects:

10 10, 20 10 TO 15 10, 12, 17, 21, 32 15 TO 20, 25, 27, 35 TO 40 1 TO 10, 100 TO 127

4.3 EXPRESSIONS DE DONNEES

Dans de nombreuses commandes PCF, la clause "Quoi" exprime des opérations àeffectuer sur des expressions de données. La forme la plus simple d'expression est uneconstante ou une référence de donnée.

4.4 CONSTANTES

Tous les types de constantes possibles en COBOL, FORTRAN, GPL ou C sont autorisésdans les expressions de données PCF.

Exemples :

6 "09AB"X 10.1 "CHAINE" +223 -7E8 "001"B .T. +0.006D+17 .3Q-04

Page 46: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Adressage effectif

47 F2 15UP Rev02 4-3

4.5 REFERENCE DE DONNEE

En adressage effectif, une référence de donnée est l'adresse de la première position dela donnée. Le type et la longueur de la donnée sont déduits du format spécifié aprèsl'adresse. Ce format consiste en une chaîne de caractères précédée du symbole numéro(#). Cette chaîne commence par un code éventuellement suivi de qualificateurs(nombres décimaux). Par exemple, le code C indique une chaîne de caractères, C123une chaîne de 123 caractères, #C123 le format d'édition d'une zone mémoire àconsidérer comme une chaîne de 123 caractères. Les codes applicables et lasignification des qualificateurs sont répertoriés à l'annexe A.

En adressage effectif, une référence de donnée peut avoir l'une des formes suivantes:

• une adresse mémoire, par exemple : ?8.13.47F• une adresse indirecte, par exemple : ?8.21.2F->7->3F• un registre, par exemple : ?GR5• un élément de pile, par exemple : ?STK0• une adresse indirecte par l'intermédiaire d'un registre, par exemple : ?BR5.0->F

Chacune de ces formes est expliquée plus en détail au chapitre 14. Il est très facile detrouver une adresse mémoire à partir des listes de compilation et d'édition de liensappropriées. L'adresse est indiquée de différentes manières, selon le langage deprogrammation utilisé (pour plus de détails, se reporter aux exemples du chapitre 14).

4.6 OPERATEURS

4.6.1 Parenthèses

Toutes les expressions de données peuvent être mises entre parenthèses.

Exemples :

(?8.10.4E) (?BR1.0->10) (?9.17.AA)#C12 (?1C#X4)

4.6.2 Opérateurs arithmétiques

Les opérateurs "+" et "-" peuvent apparaître dans une expression de données de formemonadique ou dyadique.

Exemples :

(?8.12.CE3#FB15)+17 (?8.17.A8#FB31)-(?BR7.9->0#FB31) -(?8.10.9A#DPS8)

Page 47: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

4-4 47 F2 15UP Rev02

4.6.3 Opérateurs logiques

Une expression de données peut contenir les opérateurs logiques suivants:

NOT, ^, =, ><, <=, >=, EQ, NE, GT, LT, GE, LE, AND, OR, &, !

Exemples :

?8.12.56#X2 = "4040"X (8.17.10#B1)AND(?BR1.17->5#B1)

4.7 LISTE DE POINTS D'INTERVENTION

Une liste de points d'intervention sert à spécifier la clause "Quand" d'une commandePCF. Cette clause est introduite par le mot-clé AT et peut être qualifiée par une clauseIF (voir ci-dessous). Une liste de points d'intervention se compose de plusieurs pointsd'intervention séparés par des virgules. Ils peuvent prendre l'une des deux formessuivantes :

• une adresse mémoire• le nom symbolique POST-MORTEM (synonymes : POST_MORTEM, P-M et P_M)

pour désigner la fin normale ou anormale de l'exécution.

4.7.1 Mise au point pas à pas

Une syntaxe particulière de la liste des points d'intervention permet d'effectuer une miseau point pas à pas en adressage symbolique :

AT {EACH_INSTR } {E_I }

L'action spécifiée s'effectue pour chaque instruction machine détectée.

Page 48: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Adressage effectif

47 F2 15UP Rev02 4-5

4.8 CLAUSE IF

La clause IF sert à qualifier une liste de points d'intervention. Lorsque le traitementatteint un de ces points, la condition spécifiée est examinée. Si elle est satisfaite,l'opération indiquée est exécutée; sinon il ne se passe rien.

L'exemple suivant illustre la forme d'une clause IF en adressage effectif :

Exemple :

IF expression_logique

"expression_logique" étant une expression de données de type logique.

L'expression /SEV indique le code système de gravité d'erreur. Elle s'utilise en particulierpour les vidages post mortem où des variables ne seront affichées qu'en cas d'arrêtanormal pour raison grave.

Exemple :

DUMP ?8.18.362#X4 AT P-M IF /SEV > 2;

L'expression /COUNT indique qu'un compteur est associé au point d'intervention. Il estinitialement positionné à zéro et progresse de 1 chaque fois que le traitement atteint cepoint d'intervention. Il peut servir par exemple à n'exécuter une commande qu'à partir dela énième exécution d'une instruction.

Exemple :

DUMP ?8.18.32#F2,?36#F2,?C1#C1 AT ?8.12.4E5 IF /COUNT=12;

4.9 DESASSEMBLAGE

PCF comporte un "désassembleur" qui transforme dynamiquement une instructionmachine en son équivalent en langage non assembleur (NAL). La commande DUMPavec l'argument #NAL permet d'obtenir l'impression de l'équivalent NAL d'une ouplusieurs instructions machine, la syntaxe étant :

DUMP adresse-effective #NAL(nombre);

adresse-effective adresse de la première instruction à imprimernombre nombre d'instructions à imprimer, la valeur implicite étant

l'instruction courante.

Page 49: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

4-6 47 F2 15UP Rev02

Exemples :

DUMP ?IC ->0 #NAL; impression de l'équivalent NAL del'instruction machine courante

DUMP ?8.15.4F2 #NAL(45); impression de l'équivalent NAL des 45instructions machine suivant l'adressespécifiée

DUMP ?8.14.4A #NAL32; impression de l'équivalent NAL des 32instructions machine suivant l'adressespécifiée

DUMP Ptr1 #NAL; impression de l'équivalent NAL del'instruction désignée par le pointeur Ptr1.

Voici un exemple de l'état PCF :

(((PCF AT * LINE 10 ILN 1 IN FEF001...PCF AT BEGINNING OF MAIN PROCEDURE....100 D: DUMP ?IC->0#NAL;... ?8.20.CC 0000CC 82000130 LGI2 G0,304...100 D: DUMP ?8.20.CC#NAL9;... ?8.20.CC 0000CC 82000130 LGI2 G0,304... 0000D0 1801 AGT G0... 0000D2 0510 LBG B1,G0... 0000D4 C201012E0000 MVI 302(B1),"00000000"B... 0000DA C201012D0000 MVI 301(B1),"00000000"B... 0000E0 C201012C0000 MVI 300(B1),"00000000"B... 0000E6 C201012B0000 MVI 299(B1),"00000000"B... 0000EC C201012A0000 MVI 298(B1),"00000000"B... 0000F2 82100017 LGI2 G1,23...100 D:DUMP ?8.20.1C0#NAL(3);... ?8.20.1C0 0001C0 C201012A0080 MVI 298(B1), "10000000"B... 0001C6 1800 EXIT... 0001C8 0000 ?????? ILLEGAL OPCODE...100 D:

Page 50: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 5-1

5. Adressage semi-symbolique

Ce chapitre décrit la forme des clauses "Quoi" et "Quand" en adressage semi-symbolique.

Conditions d'utilisation

Lorsqu'un programme fait l'objet d'une édition de liens avec l'option SYMBMAP=YES, ilest possible d'utiliser le mode d'adressage semi-symbolique. Celui-ci permet égalementde désigner des "données externes".

5.1 ADRESSES MEMOIRE

En adressage semi-symbolique, un objet de programme origine peut être désigné parson adresse mémoire. Celle-ci se présente sous la forme isn suivi de offset :

• isn représente le numéro de segment interne, en décimal,

• offset représente l'adresse relative de l'objet dans le segment désigné par isn enhexadécimal.

Le numéro isn est une valeur fixée par le compilateur et spécifié dans une liste denuméros de segments qu'il génère. En adressage semi-symbolique, isn et/ou offsetpeuvent être omis. Dans ce cas, ce sont les dernières valeurs utilisées qui s'appliquent.Lorsque le numéro isn est spécifié seul (sans offset), le segment est concerné en totalité.

Page 51: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

5-2 47 F2 15UP Rev02

Exemples :

:1.E4 équivaut à isn = 1, offset = E4

:.B7 équivaut à 1.B7, la dernière valeur spécifiée pour isn étant 1.

: équivaut à 1.B7, dernières valeurs spécifiées pour isn etoffset.

:2 signifie la totalité du segment numéro 2

La clause "Quoi" peut comporter:

• une liste de numéros de commandes PCF,• une expression contenant des références de données,• d'autres éléments particuliers comme des noms de fichiers, de commandes etc.

La clause "Quand" est une liste de points d'intervention éventuellement qualifiée par uneclause IF.

Ce chapitre indique les formes utilisées pour spécifier une liste de numéros decommandes, des références de données, une liste de points d'intervention et une clauseIF, en adressage semi-symbolique.

5.2 LISTE DE NUMEROS DE COMMANDE

Comme on l'a vu au chapitre 2, les commandes PCF sont identifiées par un numérospécifié par l'utilisateur ou fourni par le système. Pour certaines commandes PCF(APPLY, KILL, LIST, RESUME et SUSPEND), la clause "Quoi" est obligatoirement uneliste de numéros de commandes.

Une liste de numéros de commandes est constituée d'éléments séparés par des virgules,chaque élément étant un numéro de commande sous forme décimale, ou une plage denuméros de commandes sous la forme de deux nombres décimaux séparés par le mot-clé TO. La liste suivante fournit des numéros de commandes corrects:

10 10, 20 10 TO 15 10, 12, 17, 21, 32 15 TO 20, 25, 27, 35 TO 40 1 TO 10, 100 TO 127

5.3 EXPRESSIONS DE DONNEES

Dans de nombreuses commandes PCF, la clause "Quoi" exprime des opérations àeffectuer sur des expressions de données. La forme la plus simple d'expression est uneconstante ou une référence de donnée.

Page 52: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Adressage semi-symbolique

47 F2 15UP Rev02 5-3

5.4 CONSTANTES

Tous les types de constantes possibles en COBOL, FORTRAN, GPL ou C sont autorisésdans les expressions de données PCF.

Exemples :

6 "09AB"X 10.1 "CHAINE" +223 -7E8 "001"B .T. +0,006D+17 .3Q-04

5.5 REFERENCE DE DONNEE

En adressage semi-symbolique, il existe deux méthodes pour désigner les données:adressage semi-symbolique direct (avec isn et offset), ou (dans le cas de donnéesexternes) désignation par un nom symbolique.

5.5.1 Adressage semi-symbolique direct

Les données peuvent être désignées par leur adresse dans le programme, au moyen desvaleurs isn et offset fournies par la table de correspondances (références croisées) duprogramme compilé. Le type et la longueur de la référence sont indiqués par un formatspécifié après l'adresse. Il consiste en une chaîne de caractères précédée du symbolenuméro (#). Cette chaîne commence par un code (B, C ou P, par exemple) suivi dequalificateurs (nombres décimaux séparés par des points). Les codes applicables et lasignification des qualificateurs associés sont répertoriés à l'annexe B.

Exemples :

:1.10#B8 Chaîne de 8 bits à l'adresse isn 1, offset 10.

:1.10#C12 Chaîne de 12 caractères à l'adresse 1.10.

:1.10#DPS3.2 Nombre décimal condensé signé à trois positions pour lapartie entière et 2 décimales.

Pour plus de détails sur l'adressage semi-symbolique direct, se reporter au chapitre 15.

Page 53: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

5-4 47 F2 15UP Rev02

5.5.2 Nom symbolique

Certaines données de programme sont déclarées comme externes. L'adresse de ce typede données peut être indiquée par le nom symbolique qu'elles portent dans leprogramme origine, précédé du caractère @. Ce nom peut être éventuellement suivid'un point (.) et d'une valeur hexadécimale indiquant une adresse relative par rapport audébut de la donnée externe. La syntaxe est la suivante:

@ [nom-donnée-externe][.offset]

Si le nom de donnée externe est omis, c'est le dernier nom utilisé dans ce contexte quis'applique. Le type et la longueur de la donnée sont déduits du format indiqué aprèsl'adresse. Ce format consiste en une chaîne de caractères précédée du symbole numéro(#). Cette chaîne commence par un code éventuellement suivi de qualificateurs(nombres décimaux et points). Le code C, par exemple indique une chaîne decaractères, C123 une chaîne de 123 caractères, et #C123 le format d'édition d'une zonemémoire à considérer comme une chaîne de 123 caractères. Les codes applicables et lasignification des qualificateurs sont répertoriés à l'annexe B.

Exemples :

@A Adresse de la donnée externe dont l'adresse externe est A

@B.10 Adresse de B plus 10

@C.10#P Adresse de C plus 10 où se situe un pointeur.

Pour plus de détails sur les références de données externes en adressage semi-symbolique, se reporter au chapitre 15.

5.6 OPERATEURS

5.6.1 Parenthèses

Toutes les expressions de données peuvent être mises entre parenthèses.

Exemples:

(:0.E4) (:1.08#C3) (@X_VAR) (@B.12#X8)

Page 54: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Adressage semi-symbolique

47 F2 15UP Rev02 5-5

5.6.2 Opérateurs arithmétiques

Les opérateurs "+" et "-" peuvent apparaître dans une expression de données sous formemonadique ou dyadique.

Exemples :

:2.3A#FB15+12 (@NUM#FB31)-(:0.AA#FB31) -(@ZONE.10#DPS8)

5.6.3 Opérateurs logiques

Une expression de données peut comporter les opérateurs logiques suivants:

NOT, ^, =, ><, <=, >=, EQ, NE, GT, LT, GE, LE, AND, OR, &, !

Exemples :

:0.24#FB15=-3(@TEST#B1) ou (@SONDE.8#B1)

5.7 LISTE DE POINTS D'INTERVENTION

Une liste de points d'intervention sert à spécifier la clause "Quand" d'une commandePCF. Cette clause est introduite par le mot-clé AT et peut être qualifiée par une clauseIF (voir ci-dessous). Une liste de points d'intervention se compose de plusieurs pointsd'intervention séparés par des virgules. Ils peuvent prendre l'une des deux formessuivantes:

• une adresse mémoire• le nom symbolique POST-MORTEM (synonymes: POST_MORTEM, P-M ou P_M)

pour désigner la fin normale ou anormale de l'exécution.

5.7.1 Mise au point pas à pas

Une syntaxe particulière de la liste des points d'intervention permet d'effectuer une miseau point pas à pas en adressage symbolique :

AT {EACH_LINE} {E_L }

L'action spécifiée s'effectue pour chaque ligne du programme origine.

Page 55: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

5-6 47 F2 15UP Rev02

5.8 CLAUSE IF

La clause IF sert à qualifier une liste de points d'intervention. Lorsque le traitementatteint un de ces points, la condition est examinée. Si elle est satisfaite, l'opérationindiquée est exécutée; sinon il ne se passe rien.

L'exemple suivant illustre la forme d'une clause IF en adressage semi-symbolique :

IF expression_logique

"expression_logique" étant une expression de données de type logique.

L'expression /SEV indique le code système de gravité d'erreur. Elle s'utilise en particulierpour les vidages post-mortem où des variables ne seront affichées qu'en cas d'arrêtanormal pour raison grave.

Exemple :

DUMP :1.12#C20 AT P_M IF /SEV > 2;

L'expression /COUNT indique qu'un compteur est associé au point d'intervention. Il estinitialement positionné à zéro et progresse de 1 chaque fois que le traitement atteint cepoint d'intervention. Il peut servir par exemple à n'exécuter une commande qu'à partir dela énième exécution d'une instruction:

Exemple :

DUMP :2.C0A#FB15,@INDEX#FB31 AT :0.CDE IF/COUNT=10;

Page 56: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 6-1

6. Les commandes PCF

Le présent chapitre décrit les commandes PCF en détail. Elles se présentent par ordrealphabétique, en format standard. Aucune distinction n'est faite entre adressagesymbolique, effectif et semi-symbolique, la différence ayant été clairement exposée auxchapitres précédents.

Se reporter au chapitre 3 (adressage symbolique), au chapitre 4 (adressage effectif) ouau chapitre 5 (adressage semi-symbolique), pour obtenir la définition des conceptssuivants:

• référence de donnée,• liste de numéros de commandes,• liste de points d'intervention,• clause IF.

Remarque : Une forme particulière de la liste des points d'intervention (ATEACH_INSTR ou AT EACH_LINE) permet la mise au point pas àpas. Bien que cette syntaxe ne soit expliquée que dans lacommande PAUSE, elle est utilisable avec d'autres commandesPCF.

Page 57: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-2 47 F2 15UP Rev02

6.1 APPLY

Fonction

Indique à quelle procédure ou à quel bloc s'appliquent des commandes PCF.

Format

A[.bloc];

APPLY [liste-numéros-commandes] IN nom-procédure

Figure 6-1. Commande APPLY

Remarque : La commande APPLY ne doit pas être numérotée.

Description

Un élément donné de programme origine, par exemple une étiquette, un numéro deligne ou une variable, peut figurer sous le même nom dans plusieurs procédures. Demême, en adressage semi-symbolique, le même numéro isn peut apparaître dansplusieurs procédures. Il est donc nécessaire de préciser à quelle procédure s'applique unjeu donné de commandes PCF, ce que fait la commande APPLY en adressagesymbolique ou semi-symbolique. Cette commande peut être omise lorsque leprogramme résultant ne contient qu'une seule procédure compilée avec l'option DEBUG.

En adressage effectif, le problème ne se pose pas, puisque les éléments de programmesont désignés par leur adresse et qu'à une adresse donnée correspond un seul élément.

La liste de numéros de commandes identifie l'objet de la commande APPLY.Lorsqu'aucune liste n'est spécifiée, toutes les commandes sont applicables jusqu'à laprochaine commande APPLY accompagnée d'une liste de numéros de commandes.

En GPL, où un même nom peut figurer plusieurs fois dans une procédure externe, lenom de procédure peut avoir besoin d'être qualifié par un nom de bloc ou de procédureinterne afin d'éviter toute ambiguïté au niveau des références de données. (Voirchapitre 13.)

Page 58: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-3

Exemples :

* APPLY IN PROG.P1.P2; DUMP X AT L1;

Implique que X et L1 spécifiées dans la commande DUMP soient celles du bloc P2dans le bloc P1 de la procédure GPL PROG.

* APPLY IN PROGA; 10... 20... 30... APPLY 60 TO 70 IN PROGB; 40... 50... 60... 70... 80... 90... 100... APPLY IN PROGC; 61... 62... 130... 54...

Les commandes 10, 20, 30, 40, 50, 80, 90 et 100 s'appliquent à PROGA, tandis queles commandes 60 et 70 s'appliquent à PROGB et 61, 62, 130 et 54 à PROGC.

Page 59: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-4 47 F2 15UP Rev02

6.2 BEGIN

Fonction

Annule la session de mise au point en cours et la relance depuis le début.

Format

BEGIN

B [clause-IF];

[AT liste-points-intervention][n° -commande]

Figure 6-2. Commande BEGIN

Description

La commande BEGIN annule la session de mise au point en cours lorsque le traitementatteint l'un des points d'intervention spécifiés dans la liste. En d'autres termes,l'exécution du programme s'arrête prématurément et reprend soit au début duprogramme, soit au dernier point de reprise. Tous les points d'interruption spécifiés sontirrémédiablement perdus, sauf si un point de reprise a été défini. Dans ce cas, seuls lespoints d'interruption situés après le point de reprise sont perdus.

Si la clause AT est omise, l'opération est exécutée au moment suivant :

• en traitement par lots, lors du lancement du programme; mais cela ne présente aucunintérêt et provoquerait une itération sans fin sur une boucle,

• en interactif et en télétraitement par lots, immédiatement,

• en traitement transactionnel, la commande BEGIN n'est pas autorisée.

Si la clause IF est mentionnée, la commande n'est exécutée que si la condition estremplie.

Page 60: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-5

Exemple :

* BEGIN;

La commande BEGIN s'utilise essentiellement en interactif et en télétraitement parlots. Elle permet la relance d'un programme depuis le début quand, par exemple, unpoint d'interruption a été mal défini ou que le programme est parvenu à un stade tropavancé de son exécution.Cette commande est plus facile à utiliser que son équivalent, la commande END, quioblige à réintroduire ou resoumettre ensuite l'activité.

Page 61: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-6 47 F2 15UP Rev02

6.3 CHANGE

Fonction

Modifie une ou plusieurs données.

Format

CHANGE

C

[ AT liste-points-intervention] [clause-IF]

[n° -commande] affectation [ ,affectation]...

;

Figure 6-3. Commande CHANGE

Description

La commande CHANGE sert à affecter une nouvelle valeur à une ou plusieursréférences de donnée au cours de l'exécution du programme. Elle se présente sous laforme d'une série d'affectations séparées par des virgules. Dans une affectation, ladonnée à modifier se situe à gauche du signe égal (=) et la valeur affectée à sa droite.Cette valeur peut être une constante ou une autre expression de données. Il faut que lavaleur affectée et la donnée réceptrice soient de types compatibles. Les combinaisonsde types de données et de constantes, ainsi que la syntaxe des constantes, sontindiquées à l'annexe B. Il est possible d'imposer un type aux deux termes de l'affectationau moyen d'opérateurs de format.

Si la clause AT est omise, l'opération est exécutée au moment suivant :

• en traitement par lots, lors du lancement du programme,

• en interactif et en télétraitement par lots, immédiatement,

• en traitement transactionnel, au début de la routine TPR.

Quand la clause IF est mentionnée, la commande n'est exécutée que si la condition estremplie.

Page 62: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-7

Exemples :

* CHANGE NOM="INCONNU" AT ETIQ-1 IF NOM=" ";

Une nouvelle valeur est affectée à la variable NOM chaque fois que le traitementdétecte l'étiquette ETIQ-1 alors que NOM est à espace. La valeur affectée dans cecas à NOM est la chaîne de caractères "INCONNU".

* CHANGE X=0, Y=0, Z=0;

En interactif ou en télétraitement par lots, les variables X,Y et Z sont immédiatementforcées à zéro. En traitement par lots, ces variables sont initialisées lors du lancementdu programme; cette méthode peut servir à donner une valeur à des variables quandleur initialisation a été accidentellement omise dans le programme.

* CHANGE CHAR_VAR#X8="4040404040404040"X AT ETIQ_DEBUT;

La zone mémoire adressée par la variable CHAR_VAR est forcée à une valeurhexadécimale de 8 octets chaque fois que le programme rencontre l'étiquetteETIQ_DEBUT. Cette affectation est possible puisque la variable CHAR_VAR a unformat hexadécimal de 8 octets.

Page 63: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-8 47 F2 15UP Rev02

6.4 CHECKPOINT

Fonction

Définit un point de reprise dans la session de mise au point en cours.

Format

CHECKPOINT

CKPT

[AT liste-points-intervention] [clause-IF];

[n° -commande]

Figure 6-4. Commande CHECKPOINT

Description

La commande CHECKPOINT sert à définir un point de reprise dans la session de miseau point en cours. La spécification d'un point de reprise entraîne toujours l'annulation duprécédent. Si la session de mise au point s'arrête prématurément, que ce soit à caused'une erreur dans le programme, ou à la suite d'une commande BEGIN ou END, lesystème demande à l'utilisateur s'il souhaite relancer la session au dernier point dereprise. Dans l'affirmative, le programme est relancé au dernier point de reprise à l'étatexact dans lequel il se trouvait; toutes les commandes PCF présentes à ce stade sont enparticulier reconstituées. Pour effectuer une relance sur point de reprise, il fautmentionner l'option REPEAT dans la commande lançant l'exécution du programme misau point.

Si la clause AT est omise, l'opération est exécutée au moment suivant :

• en traitement par lots, lors du lancement du programme,• en interactif et en télétraitement par lots, immédiatement,• en transactionnel, la commande CHECKPOINT n'est pas autorisée.

Quand la clause IF est mentionnée, la commande n'est exécutée que si la condition estremplie.

Exemple :

* CHECKPOINT;

En interactif ou en télétraitement par lots, le point de reprise est immédiatementconstitué. Si le programme se trouve à ce stade dans une phase de mise au point trèscomplexe, la relance sur ce point de reprise permettra d'en optimiser la ré-exécutionen cas de besoin.

Page 64: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-9

6.5 CULIB1/2/3

Fonction

Spécifie en dynamique des bibliothèques CU où se trouvent des unités compiléescomportant des informations de gestion nécessaires à la mise au point en modesymbolique.

Format

[AT liste-points-intervention] [clause-IF];

CULIB1 CULIB2 CULIB3

[n° -commande] nom-bib CU

Figure 6-5. Commande CULIB1/2/3

Description

Cette commande ne s'utilise qu'en cas d'édition de liens d'un module chargeableconstitué de CU "allégés", en utilisant des unités compilées générées par la commandeSPLIT_CU (voir chapitre 21). Il faut spécifier dans ce cas une bibliothèque CU au moins,et trois au plus, contenant les unités compilées d'origine (non "allégées") qui comportenttoutes les informations de gestion nécessaires à la mise au point en mode symbolique.

La recherche se fait dans l'ordre suivant : CULIB1, CULIB2 et CULIB3.

Les dates de création des CU sont vérifiées afin de s'assurer que les opérationsd'"allègement" et d'édition de liens ont bien été effectuées pour chacun des nouveauxCU.

L'utilisation des commandes CULIB1/2/3 n'est pas autorisée si l'édition de liens dumodule chargeable a été faite avec l'option SYMBMAP=NO. Utiliser alors la commandeIOF MWINLIB CU pour spécifier l'itinéraire de recherche, avant d'exécuter le modulechargeable (voir chapitre 21).

Exemple :

CULIB1 SD3.CULIB;

Page 65: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-10 47 F2 15UP Rev02

6.6 DISPLAY

Fonction

Affiche les bibliothèques allouées par PCF.

Format

DISPLAY ;

Figure 6-6. Commande DISPLAY

Description

La commande DISPLAY sert à afficher sur le support de sortie en cours la liste desbibliothèques spécifiées sous PCF par les commandes LIB, INLIB1, INLIB2, INLIB3,CULIB1, CULIB2 et CULIB3.

La commande DISPLAY ne peut être ni numérotée, ni différée (avec une clause AT).

Exemple :

DISPLAY;

Page 66: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-11

6.7 DSR

Fonction

Affiche des lignes du programme source directement sur le support de sortie courant,sans passer par l'éditeur FSE.

Format

LINEDSR

LN

[AT liste-points-intervention] [clause-IF];

LINE

LN

numéro-ligne numéro-ligne[n° -commande] TO

Figure 6-7. Commande DSR

Description

Utilisée sans paramètres, la commande DSR affiche la ligne courante du code origine. Sile paramètre LINE est fourni, il y a affichage de la ligne spécifiée ou de toutes les lignescomprises entre le premier et le second numéros de ligne spécifiés. Si le numéro deligne fourni n'est pas trouvé, la ligne portant le numéro le plus proche est affichée.

Particularité

Pour que la commande DSR puisse s'exécuter, la bibliothèque origine doit être affectéepar la commande PCF LIB ou INLIBi. Le programme origine est d'abord recherché dansLIB, puis dans INLIB1, INLIB2 et enfin INLIB3. Le CU doit porter le même nom quel'unité de bibliothèque origine.

La commande DSR permet d'afficher du code origine, du code origine étendu (macro-instructions GPL, COPY en COBOL, etc.) ou le listage de compilation. Pour obtenir lecode source étendu et déterminer les options nécessaires, se reporter à ladocumentation correspondant au compilateur considéré.

Exemples :

DSR (affichage de la ligne courante)

DSR LINE 100 (affichage de la ligne 100)

DSR LN 100 TO LN 170 (affichage des lignes 100 à 170)

Page 67: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-12 47 F2 15UP Rev02

6.8 DUMP

Fonction

Imprime une ou plusieurs données.

Format

DUMP

D

expression-données [ ,expression-données]..

[AT liste-points-intervention] [clause-IF];

[n° -commande]

Figure 6-8. Commande DUMP

Description

La commande DUMP sert à imprimer la valeur de données en cours d'exécution. Lesopérandes des références de données de cette commande spécifient les données àimprimer. La liste de points d'intervention indique quand il faut imprimer ces valeurs.

Si la clause AT est omise, l'opération est exécutée au moment suivant:

• en traitement par lots, lors du lancement du programme,

• en interactif ou en télétraitement par lots, immédiatement,

• en transactionnel, au début de la routine TPR.

Quand la clause IF est mentionnée, la commande n'est exécutée que si la condition estremplie.

Le format des données affichées dépend de leur type, tel qu'il a été déclaré dans leprogramme origine ou tel qu'il est spécifié par le format explicite pouvant apparaître à lasuite de l'expression de données (voir chapitres 4 et 5).

Les groupes et tableaux s'impriment tels quels, avec les renfoncements et en-têtesappropriés qui en indiquent la structure.

Page 68: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-13

Exemples :

* DUMP RESULTAT1, RESULTAT2, X AT LOC1;

imprime la valeur des variables RESULTAT1, RESULTAT2 et X chaque fois que letraitement détecte LOC1.

* DUMP V1,V2;

en interactif ou en télétraitement par lots, imprime la valeur en cours des variables V1et V2.

* DUMP ?SR0#X4;

imprime le contenu du registre scientifique numéro 0 sous la forme d'une chaînehexadécimale de quatre octets.

* DUMP ?IC ->0 #NAL;

imprime l'équivalent NAL de l'instruction machine courante.

* DUMP ?8.15.4F2 #NAL(45);

imprime l'équivalent NAL des 45 instructions machine suivant l'adresse indiquée.

* DUMP &LOCAL_NAME;

imprime l'adresse effective correspondant à la référence symbolique indiquée.

* DUMP L_V; (ou DUMP LOCAL_VARIABLES;)

imprime toutes les variables locales de la procédure courante.

Page 69: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-14 47 F2 15UP Rev02

6.9 END

Fonction

Arrête le programme en cours de mise au point

Format

[DUMP]END[n° -commande] AT liste-points-intervention

clause-IF ;

Figure 6-9. Commande END

Description

La commande END arrête le programme mis au point lorsque le traitement atteint l'undes points d'intervention spécifiés. Si DUMP est spécifié, un vidage des données duprogramme a lieu par l'intermédiaire du mécanisme standard SYSOUT.

Si le programme a été lancé avec l'option REPEAT, il est possible de relancer leprogramme au dernier point de reprise, ou à partir du début, si aucun point de reprise n'aété constitué.

Si la clause AT est omise, l'opération est exécutée au moment suivant:

• en traitement par lots, lors du lancement du programme,• en interactif ou en télétraitement par lots, immédiatement,• en transactionnel, au début de la routine TPR.

Quand la clause IF est mentionnée, la commande n'est exécutée que si la conditionspécifiée est remplie.

Page 70: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-15

Exemples :

* END DUMP AT LN 200 IF A=0;

dans le cas où une analyse de résultats de vidage est nécessaire pour résoudre unproblème, permet d'obtenir un vidage des données du programme si la valeur de Aest égale à 0 à la ligne 200.

* END DUMP;

en interactif ou en télétraitement par lots, provoque un vidage des données duprogramme au stade en cours de l'exécution et y met fin.

* END;

s'utilise en interactif ou en télétraitement par lots, lorsque l'utilisateur a rassemblésuffisamment d'informations pour résoudre le problème et n'a pas besoin depoursuivre l'exécution du programme.

Page 71: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-16 47 F2 15UP Rev02

6.10 EXEC

Fonction

Exécute les commandes PCF contenues dans un fichier donné.

Format

EXEC

E"description-fichier"

[AT liste-points-intervention] [clause-IF];

[n° -commande]

Figure 6-10. Commande EXEC

Description

La commande EXEC sert à indiquer que les commandes PCF doivent être lues dans lefichier indiqué lorsque le traitement atteint l'un des points d'intervention. Le fichier peutcontenir n'importe quelle commande PCF. Lorsqu'il est épuisé, la suite des commandesest lue dans le fichier d'origine ou à partir du terminal.

Le format complet d'une description de fichier figure dans le manuel de référence del'utilisateur IOF (21UJ).

Les guillemets qui encadrent la description de fichier peuvent être omis si les clauses ATet IF ne sont pas spécifiées et que la description ne comprend ni "AT", ni "IF".

Si la clause AT est omise, l'opération est exécutée au moment suivant:

• en traitement par lots, lors du lancement du programme,• en interactif ou en télétraitement par lots, immédiatement,• en transactionnel, au début de la routine TPR.

Si la clause IF est mentionnée, la commande n'est exécutée que si la condition spécifiéeest remplie.

Page 72: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-17

Exemples :

* EXEC"BDFIC1" AT L1, L2 IF Z>0 AND X<0;

provoque l'exécution des commandes enregistrées dans le fichier catalogué BDFIC1chaque fois que l'étiquette L1 ou L2 est détectée et que Z est supérieur à 0 et Xinférieur à 0. Si BDFIC1 contient des commandes sans clause AT, elles sontimmédiatement exécutées; dans le cas contraire, de nouveaux points d'interruptionsont créés conformément à la clause AT.

* EXEC FILE1:K999:MS/M452;

en traitement par lots, cette commande permet l'insertion d'une séquence standard decommandes PCF dans le train de commandes. FIC1 est un fichier non catalogué duvolume K999 sur une unité MSU 452. En interactif ou en télétraitement par lots, lamême phrase provoque l'exécution immédiate des commandes enregistrées dans lefichier, comme si elles avaient été introduites au terminal. Ce procédé permet d'éviterla répétition fastidieuse de la même séquence de commandes.

Page 73: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-18 47 F2 15UP Rev02

6.11 FSE

Fonction

Appelle l'éditeur plein écran FSE.

Format

[AT liste-points-intervention]

[n° -commande] FSE

[clause-IF];

Figure 6-11. Commande FSE

Description

La commande FSE appelle l'éditeur plein écran (Full Screen Editor) qui permet d'afficherou de modifier n'importe quelle unité de bibliothèque origine. Cette commande n'est pasautorisée en transactionnel ou en traitement par lots. Si la clause AT est omise, l'éditeurplein écran est immédiatement appelé en interactif ou en télétraitement par lots. Lorsquela clause IF est mentionnée, FSE n'est appelé que si la condition indiquée est remplie.

Exemple :

* FSE;

en interactif ou en télétraitement par lots, l'éditeur plein écran est appelé pourpermettre de consulter le programme origine, le compte rendu de compilation ou lerelevé des liens.

Page 74: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-19

6.12 GOTO

Fonction

Provoque un branchement dans le programme mis au point ou relance l'exécution aprèsune commande PAUSE.

Format

GOTO point - intervention

GO/

[n° -commande] FSE [AT liste-points-intervention]

[clause-IF];

Figure 6-12. Commande GOTO

Description

La forme GO ou / sert en interactif ou en télétraitement par lots à relancer unprogramme après une commande PAUSE. L'exécution reprend à l'instruction duprogramme origine qui suit la pause. En traitement par lots ou en transactionnel, cettecommande n'est pas prise en compte. La première forme GO point-intervention sert àmodifier l'ordre d'exécution. Le traitement passe au point d'intervention indiqué quand ilatteint l'un des points d'intervention spécifiés dans la liste.

Si la clause AT est omise, l'opération est exécutée au moment suivant:

• en traitement par lots, lors du lancement du programme,• en interactif ou en télétraitement par lots, immédiatement,• en transactionnel, au début de la routine TPR.

Quand la clause IF est mentionnée, la commande n'est exécutée que si la conditionspécifiée est remplie.

Exemples :

* GOTO L1 AT ETIQ-DEBUT;

lance l'exécution du programme à partir d'un point différent du point d'entrée normal.

* GOTO ETIQ-2 AT LINE 100 IF X<0 OR X>255;

Cette commande peut servir à valider une éventuelle correction de programme sansavoir à le recompiler, ou à effectuer une nouvelle édition de liens. Quand le traitementatteint la ligne 100, la valeur de X est testée. Si la condition est remplie, lebranchement a lieu.

Page 75: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-20 47 F2 15UP Rev02

6.13 INLIB1/2/3

Fonction

Spécifie les bibliothèques d'entrée pour la commande FSE ou DSR.

Format

INLIB/1/2/3

IL1/2/3

[AT liste-points-intervention] [clause-IF];

["description - bibliothèque"][n° -commande]

Figure 6-13. Commande INLIB1/2/3

Description

Les commandes INLIB1, INLIB2 et INLIB3 spécifient les bibliothèques d'entrée à utiliserpar FSE ou DSR. Si le paramètre "description-bibliothèque" est omis, toute bibliothèqued'entrée spécifiée par une commande INLIB1 (ou INLIB2 ou INLIB3) antérieure estannulée. Ces commandes ne peuvent s'utiliser qu'en interactif ou en télétraitement parlots. Si aucune bibliothèque d'entrée n'est précisée, les règles GCL de recherche sontappliquées (les bibliothèques d'entrée implicites sont celles mentionnées dans le profild'utilisateur). En l'absence de clause AT, ces commandes sont immédiatementexécutées.

Quand la clause IF est mentionnée, elles ne le sont que si la condition indiquée estremplie.

Le format complet de la description de bibliothèque figure au chapitre 7 du manuel deréférence de l'utilisateur IOF (21UJ). En résumé, pour une bibliothèque cataloguée, ladescription se réduit au nom de bibliothèque. Pour une bibliothèque non cataloguée, ellea la forme suivante:

nom-bibliothèque:nom-volume:classe-appareil

Les guillemets qui encadrent la description de bibliothèque peuvent être omis si lesclauses AT et IF ne sont pas spécifiées et que la description ne comprend ni "AT", ni"IF".

Page 76: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-21

Exemple:

* INLIB1 MABIB.ORIGINE;

La bibliothèque cataloguée MABIB.ORIGINE est désignée comme premièrebibliothèque d'entrée.

Page 77: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-22 47 F2 15UP Rev02

6.14 KILL

Fonction

Supprime les points d'interruption associés à une ou plusieurs commandes.

Format

KILL

K

[liste-numéros-commande]

[AT liste-points-intervention] [clause-IF];

[n° -commande]

Figure 6-14. Commande KILL

Description

La commande KILL supprime les commandes spécifiées lorsque le traitement atteint l'undes points d'intervention indiqués dans la clause AT. Les commandes supprimées parKILL sont définitivement perdues, contrairement à celles bloquées par SUSPEND quipermet de les revalider, au moyen d'une commande RESUME appropriée. Si aucuneclause "Quoi" n'est spécifiée, toutes les commandes validées ou bloquées sontsupprimées.

Si la clause AT est omise, l'opération est exécutée au moment suivant:

• en traitement par lots, lors du lancement du programme,• en interactif ou en télétraitement par lots, immédiatement,• en transactionnel, au début de la routine TPR.

Quand la clause IF est mentionnée, les commandes sont supprimées si la conditionspécifiée est remplie.

Page 78: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-23

Exemples :

* L'utilisateur doit contrôler l'ordre d'exécution de deux opérations précises :

SUSPEND 10; 10 TRACE AT ALL-LABELS; RESUME 10 AT L1 IF Z<0; KILL AT L2 IF Z NOT EQ 0;

La commande TRACE (portant le numéro 10) est bloquée (momentanémentinvalidée) au lancement du programme. Quand le traitement rencontre l'étiquette L1et que Z est inférieur à 0, le jalonnement est déclenché. Lorsqu'il rencontre l'étiquetteL2 et que Z est différent de 0, toutes les commandes sont supprimées et lejalonnement est arrêté.

* KILL;

En interactif ou en télétraitement par lots, cette commande supprime tous les pointsd'interruption existants du programme, qu'ils soient validés ou bloqués.

Page 79: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-24 47 F2 15UP Rev02

6.15 LIB

Fonction

Spécifie une bibliothèque de sortie pour une commande FSE ou DSR.

Format

[AT liste-points-intervention]

LIB[n° -commande] ["description-bibliothèque"]

[clause-IF];

Figure 6-15. Commande LIB

Description

La commande LIB spécifie la bibliothèque de sortie à utiliser par une commande FSE ouDSR. Si le paramètre "description-bibliothèque" est omis, la bibliothèque de sortiespécifiée par une commande LIB antérieure est annulée. Lorsqu'aucune bibliothèque desortie n'est précisée, les règles GCL de recherche sont appliquées. C'est la bibliothèquementionnée dans le profil d'utilisateur qui est utilisée, si ce dernier existe; sinon, onutilise une bibliothèque SL temporaire. En l'absence de clause AT, la commande estimmédiatement exécutée. Quand une clause IF est mentionnée, la commande n'estexécutée que si la condition spécifiée est remplie.

Le format complet de la description de bibliothèque figure au chapitre 7 du manuel deréférence de l'utilisateur IOF (21UJ). En résumé, pour une bibliothèque cataloguée, ladescription se réduit au nom de bibliothèque. Pour une bibliothèque non cataloguée, ellea la forme suivante:

nom-bibliothèque:nom-volume:classe-appareils

Les guillemets qui encadrent la description de bibliothèque peuvent être omis si lesclauses AT et IF n'ont pas été spécifiées et que la description ne comprend ni "AT", ni"IF".

Exemple :

LIB MABIB.OR;

La bibliothèque MABIB.OR est désignée comme bibliothèque de sortie de FSE ou DSR.

Page 80: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-25

6.16 LIST

Fonction

Affiche des commandes validées ou bloquées.

Format

LIST

L

[liste-numéros-commandes]

[AT liste-points-intervention] [clause-IF];

[n° -commande]

Figure 6-16. Commande LIST

Description

La commande LIST affiche les commandes PCF spécifiées, quand le traitement atteintl'un des points d'intervention indiqués dans la clause AT. Les commandes bloquées parla commande SUSPEND sont signalées, celles supprimées par une commande KILL nes'affichent pas. Lorsqu'aucune clause "Quoi" n'est spécifiée, toutes les commandesvalidées ou bloquées sont listées.

Si la clause AT est omise, l'opération est exécutée au moment suivant:

• en traitement par lots, lors du lancement du programme,• en interactif ou en télétraitement par lots, immédiatement,• en transactionnel, au début de la routine TPR.

Quand la clause IF est mentionnée, l'affichage n'a lieu que si la condition spécifiée estremplie.

Exemples :

* LIST;* LIST 100 TO 200 AT L1 IF Z<0;* LIST AT POST MORTEM;

Page 81: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-26 47 F2 15UP Rev02

6.17 OUTPUT

Fonction

Dirige le compte rendu d'exécution de PCF vers le fichier indiqué.

Format

OUTPUT

O

["description-fichier"][n° -commande]

[AT liste-points-intervention] [clause-IF];

Figure 6-17. Commande OUTPUT

Description

La commande OUTPUT sert à demander que le compte rendu d'exécution de PCF soitdirigé vers le fichier indiqué lorsque le traitement atteint l'un des points d'interventionspécifiés dans la clause AT. Le format complet d'une description de fichier figure auChapitre 6 du manuel de référence de l'utilisateur IOF (21UJ). En résumé, pour un fichiercatalogué, la description se réduit au nom du fichier. Pour un fichier non catalogué, ellea la forme suivante:

nom-fichier:nom-volume:classe-appareils

Si la description de fichier est omise, les sorties sont à nouveau dirigées vers le fichierspécifié initialement (par l'intermédiaire du mécanisme SYSOUT ou vers le terminalutilisateur).

Quand la clause AT est omise, l'opération est exécutée au moment suivant:

• en traitement par lots, lors du lancement du programme,• en interactif et en télétraitement par lots, immédiatement,• en transactionnel, au début de la routine TPR.

Quand la clause IF est mentionnée, la commande n'est exécutée que si la conditionspécifiée est remplie.

Page 82: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-27

Exemples :

* OUTPUT "FICRES" AT L1, L2 IF Z<0;

dirige le compte rendu d'exécution de PCF vers un fichier catalogué FICRES chaquefois qu'est rencontrée l'étiquette L1 ou L2 et que Z est inférieur à 0. Une sortienormale par l'intermédiaire du mécanisme SYSOUT ou sur le terminal utilisateurs'obtient à l'aide de la commande suivante:

OUTPUT AT L3;

elle a lieu chaque fois qu'est rencontrée l'étiquette L3.

* OUTPUT "FIC2:K999:MS/M452";

En traitement par lots ou en transactionnel, le compte rendu d'exécution est dirigévers le fichier FIC2 dans le volume K999 sur une unité MSU 452. En interactif ou entélétraitement par lots, le même exemple provoque le transfert immédiat du compte:rendu d'exécution vers le fichier indiqué.

Page 83: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-28 47 F2 15UP Rev02

6.18 PAUSE

Fonction

Demande l'arrêt du programme à certains points.

Format

PAUSE

P[AT liste-points-intervention]

[clause-IF];

[n° -commande]

Figure 6-18. Commande PAUSE

Description

La commande PAUSE n'a de signification qu'en interactif ou en télétraitement par lots.Elle n'est prise en compte ni en traitement par lots, ni en transactionnel. Cettecommande sert à donner le contrôle du programme à l'utilisateur chaque fois que letraitement atteint l'un des points d'intervention spécifiés. Le système demande alors àl'utilisateur d'introduire des commandes PCF qui sont ensuite traitées. Elles peuvent êtreimmédiates (sans clause AT) ou différées (avec clause AT). L'exécution du programmeest relancée au moyen de la commande GO (ou /) ou d'une commande GOTOimmédiate. Quand la clause IF est mentionnée, le contrôle n'est donné à l'utilisateur quesi la condition spécifiée est remplie.

Mise au point pas à pas

Une forme particulière de la clause AT permet la mise au point pas à pas d'unprogramme. L'arrêt peut se faire à chaque instruction (en adressage effectif) ou àchaque ligne (en adressage symbolique) La syntaxe complète de la commande PAUSEen cas d'utilisation de cette clause est la suivante :

{ PAUSE } AT { EACH_INSTR }{ P } { E_I } { EACH_LINE } { E_L }

Lors de la mise au point pas à pas au moyen de PAUSE, les commandes KILL,SUSPEND ou RESUME sont utilisables normalement.

Page 84: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-29

Exemples :

* L'utilisateur souhaite une pause conditionnelle pour consulter l'environnement duprogramme:

PAUSE AT LINE 200 IF K<0 AND P>255;

Dans cet exemple, le contrôle est donné à l'utilisateur à la ligne 200, si K est inférieurà 0 et P supérieur à 255. Il peut alors utiliser une commande DUMP ou CHANGEimmédiate pour afficher ou modifier des variables. L'exécution sera relancée aumoyen d'une commande GO.

* PAUSE AT ALL-LABELS;

Chaque fois qu'une instruction avec étiquette est détectée, le contrôle est donné àl'utilisateur qui peut afficher et modifier le contexte comme il l'entend.

* PAUSE AT E_I;

permet une mise au point pas à pas. A chaque instruction machine, l'utilisateur reçoitle contrôle et peut afficher et modifier le contexte à son gré.

* PAUSE AT E_L;

permet une mise au point pas à pas. A chaque ligne de code origine, l'utilisateur reçoitle contrôle et peut afficher et modifier le contexte à son gré.

Page 85: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-30 47 F2 15UP Rev02

6.19 RECOVER

Fonction

Spécifie une action correctrice implicite à effectuer en cas d'anomalie dans ledéroulement du programme. Elle est signalée dans le compte rendu d'exécution.

Format

RECOVER condition[n° -commande]

[AT liste-points-intervention] [clause-IF];

Figure 6-19. Commande RECOVER

Description

Le paramètre "condition" peut prendre l'une des formes suivantes:

ILLDEC pour des données décimales incorrectes,SUBSCRIPT pour toute désignation d'élément en dehors des limites d'un tableau.

Les actions correctrices associées sont les suivantes :

• pour ILLDEC : en cas de signe incorrect, forçage au signe +; en cas de chiffreincorrect, remplacement par zéro.

• pour SUBSCRIPT : forçage de l'indice erroné à la valeur de de l'indice du premierélément de la table ou du tableau.

Exemples :

* 13 RECOVER ILLDEC;* RECOVER SUBSCRIPT;

Remarque : La commande RECOVER ne doit s'utiliser que lors de la mise aupoint, pour corriger les deux anomalies signalées et rattraper ainsides incidents plus graves. Les anomalies doivent toutefois êtrecorrigées et il ne faut pas compter sur RECOVER pour les sauter.En production, un TDS ne doit comporter aucune anomalie et nedoit pas s'exécuter sous PCF, sous peine de peser lourdement surles performances.

Page 86: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-31

6.20 RESUME ET SUSPEND

Fonction

Bloque (SUSPEND) ou débloque (RESUME) une ou plusieurs commandes PCF, lorsquele traitement atteint un des points d'intervention. Ces commandes servent à limiter lamise au point à une section de programme.

Format

RESUME

R

SUSPEND

S

[liste-numéros-commandes]

[AT liste-points-intervention]

[clause-IF];

[n° -commande]

Figure 6-20. Commandes RESUME et SUSPEND

Description

La commande SUSPEND bloque les commandes PCF dont le numéro est indiqué,lorsque le traitement atteint l'un des points d'intervention spécifiés.

La commande RESUME débloque une commande précédemment bloquée par unecommande SUSPEND. Appliquée à des commandes n'ayant pas été bloquées, elle n'aaucun effet.

La ou les commande(s) restent bloquées jusqu'à ce qu'une commande RESUME soitspécifiée. Les commandes en question peuvent être à nouveau bloquées au moyend'une nouvelle commande SUSPEND en mentionnant leur numéro.

Une commande SUSPEND peut elle-même faire l'objet d'une autre commandeSUSPEND ou d'une commande RESUME. Il est en revanche impossible de bloquer unecommande RESUME par SUSPEND.

Si la clause AT est omise, l'opération est exécutée au moment suivant:

• en traitement par lots, lors du lancement du programme,• en interactif et en télétraitement par lots, immédiatement,• en transactionnel, au début de la routine TPR.

Page 87: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-32 47 F2 15UP Rev02

Quand une clause IF est mentionnée, la commande n'est exécutée que si la conditionspécifiée est remplie.

Si aucune clause "Quoi" n'est précisée, toutes les commandes sont bloquées oudébloquées.

Les commandes SUSPEND et RESUME permettent d'économiser du papier et du tempsen évitant des répétitions inutiles.

Exemples :

La mise au point du programme doit se limiter aux cas où une variable donnée prendplusieurs valeurs à l'intérieur d'une plage définie comme par exemple,: 6<X3<8, parexemple:

SUSPEND 10 TO 100 AT BEGIN; RESUME 10 TO 100 AT ETIQ-6 IF X3<8 AND X3>6; SUSPEND 10 TO 100 AT ETIQ-6 IF X3>=8 OR X3<=6; 10... 20... . . . 100...

La première commande SUSPEND bloque les commandes PCF de mise au point. Lacommande RESUME les débloque si la condition spécifiée est remplie au niveau dupoint d'intervention indiqué [ETIQ-6. La commande SUSPEND suivante bloque lescommandes, si la valeur de la variable X3 se situe en dehors de la plage définie.Viennent ensuite les instructions de mise au point (10 à 100).

* 1 DUMP A AT L1; 2 DUMP B AT L1; 3 SUSPEND 1, 2 AT L3;

Si le traitement détecte l'étiquette L3 avant L1, les commandes 1 et 2 ne sont pasexécutées. Si L1 est détectée en premier, ces commandes sont réexécutées chaquefois que L1 est détectée, sauf si L3 a été détectée entretemps.

* 1 DUMP TABLEAU-1 AT ALL-LABELS; 2 SUSPEND 1 AT ETIQ-6; 3 RESUME 1 AT L20, LOC23;

L'affichage de la variable TABLEAU-1 est bloqué lorsqu'est détectée l'étiquetteETIQ-6. Il reprend au niveau de L20 ou LOC23.

Page 88: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-33

6.21 TRACE

Fonction

Jalonne le programme au cours de son exécution.

Format

TRACE

T

[NOT]

[MAP]

[n° -commande] [AT liste-points-intervention]

[clause-IF];

Figure 6-21. Commande TRACE

Description

L'utilisateur spécifie une liste d'un ou plusieurs points d'intervention. Lorsque letraitement atteint l'un de ces points, PCF prend le contrôle et en garde trace. Lejalonnement peut s'effectuer selon trois modes :

1. Si ni MAP, ni NOT ne sont spécifiés, PCF imprime une ligne sur le compte rendud'exécution chaque fois que l'un des points d'intervention est atteint. Elle identifie lepoint d'intervention (étiquette, numéro de ligne ou adresse effective).

2. Si MAP est spécifié, il ne se passe rien au moment où le point d'intervention estatteint. C'est seulement à la fin normale ou anormale de l'exécution du programmequ'est imprimé un relevé des points d'intervention avec le nombre de fois où letraitement est passé par chacun d'eux.

3. Si NOT est spécifié, le jalonnement se déroule comme dans le deuxième mode,mais c'est un relevé de tous les points d'intervention par lesquels le traitement n'estpas passé qui s'imprime.

Si la clause IF est mentionnée, la condition est examinée chaque fois que le traitementatteint l'un des points d'intervention. Il faut qu'elle soit remplie pour que le pointd'intervention soit relevé.

Comme indiqué précédemment, la commande TRACE permet à l'utilisateur de localisertrès rapidement les parties critiques d'un programme. Les commandes TRACE sontappliquées à des parties de plus en plus petites à mesure que la vérification duprogramme avance.

Dans le premier mode, l'utilisateur a trace des points d'intervention avec l'ordre danslequel ils ont été rencontrés, ce qui rend très facile la localisation des erreurs dedéroulement du programme.

Page 89: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-34 47 F2 15UP Rev02

Dans le deuxième mode, le relevé fourni indique les points rencontrés et combien de foisils l'ont été, ce qui facilite la vérification de traitements itératifs à la suite de l'instructionPERFORM en COBOL ou DO en FORTRAN, par exemple.

Dans le troisième mode, tous les points non rencontrés sont relevés. Cette fonction sertà déterminer quelles sont les branches d'un programme qui n'ont pas été exécutées. Elleest particulièrement utile dans les programmes de test, pour vérifier que le traitementpasse bien par toutes les branches du programme.

Exemples :

* Un programme utilisateur effectue un branchement sur un des sous-programmes enfonction de la valeur d'une zone donnée d'un article d'entrée. L'utilisateur peut fournirpour commencer des valeurs de test provoquant un branchement sur chacun dessous-programmes, puis soumettre la commande PCF suivante:

TRACE AT SP1,...... SPn;

Si l'exécution du programme est correcte, ces différents points de branchementapparaissent bien sur le relevé, dans le même ordre que dans la commande. S'il n'y apas trace de l'un d'entre eux, ou si ce n'est pas dans le bon ordre, cela signifie qu'il y aune erreur dans le programme ou les données fournies. L'utilisateur pourra alorslimiter son travail de vérification sur une partie encore plus petite du programme.

* La commande:

TRACE MAP AT SP1,.... SPn;

permet une approche plus globale du problème. Il est ainsi possible de vérifier quechaque sous-programme s'est bien déroulé le nombre de fois voulu, conformémentaux données correspondantes.

* Lors d'essais plus approfondis, la commande PCF:

TRACE NOT AT ALL-LABELS;

relève toutes les instructions avec étiquettes du programme qui n'ont pas étéexécutées, ce qui signifie qu'il faut effectuer un essai avec de nouvelles donnéesd'entrée.

* La commande PCF:

TRACE MAP AT IMP-ERREUR IF XERR>50;

relève le nombre de fois où l'étiquette IMP-ERREUR est rencontrée alors que lavariable XERR est supérieure à 50.

Page 90: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-35

6.22 WHERE

Fonction

Affiche le contexte d'exécution.

Format

WHERE

W

[TRACK]

[TK]

[AT liste-points-intervention]

[n° -commande]

[clause-IF];

Figure 6-22. Commande WHERE

Description

La commande WHERE affiche la valeur du compteur d'instruction lorsque le traitementatteint l'un des points d'intervention spécifiés dans la liste. Chaque fois que c'estpossible, la valeur de ce compteur apparaît sous forme symbolique (nom de procédure,étiquette, numéro de ligne origine). La spécification de TRACK ou TK entraînel'affichage de la chaîne complète d'appels de procédure du programme. La valeur ducompteur d'instruction et le nom de la procédure d'appel s'affichent pour chaque appel.Avec ou sans option TRACK, si la procédure concernée par la commande APPLY encours fait partie de la chaîne de procédures appelées, elle est affichée et signalée parune flèche.

Si la clause AT est omise, l'opération est exécutée au moment suivant:

• en traitement par lots ou en transactionnel, lors du lancement du programme, maiscela ne présente aucun intérêt,

• en interactif et en télétraitement par lots, immédiatement.

Quand la clause IF est mentionnée, la commande n'est exécutée que si la conditionspécifiée est remplie.

Page 91: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

6-36 47 F2 15UP Rev02

Exemples :

* La commande WHERE est essentielle pour la mise au point en interactif et entélétraitement par lots. Après qu'il ait reçu le contrôle du programme à la suite d'unecommande PAUSE, ou introduit une commande PCF à la suite d'une interruption, lapremière commande lancée par l'utilisateur sera vraisemblablement WHERE TRACKpour connaître le contexte exact du point d'interruption.

* En traitement par lots, la phrase :

WHERE TRACK AT ETIQ-6;

génère un relevé complet de tous les contextes dans lesquels est détectée l'étiquetteETIQ-6. Toutes les procédures d'appel de la procédure contenant l'étiquette ETIQ-6sont affichées chaque fois qu'ETIQ-6 est détectée.

Page 92: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Les commandes PCF

47 F2 15UP Rev02 6-37

Page 93: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 7-1

7. Appel de PCF en traitement par lots

Lorsqu'il soumet un travail à exécuter avec PCF, l'utilisateur doit fournir un fichiercontenant les commandes de mise au point. Pour ce faire, il spécifie une description defichier à la suite du mot-clé DEBUG dans l'ordre JCL STEP, comme suit:

STEP nom-module-chargeable, description-bibliothèque-modules-chargeables, DEBUG=description-fichier-entrée-séquentiel-PCF;

Le fichier d'entrée PCF peut être n'importe quel fichier séquentiel. Les exemples quisuivent illustrent les cas d'emploi les plus courants.

7.1 COMMANDES SUR CARTES

STEP.....DEBUG=*CARTES;...ENDSTEP;$INPUT CARTES;.. commandes PCF sur cartes.$ENDINPUT;

Le nom de la rubrique de description d'entrées contenant les cartes de commandess'indique, précédé d'un astérisque, à la suite du mot-clé DEBUG. La rubrique même estdélimitée par les ordres INPUT et ENDINPUT.

Page 94: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

7-2 47 F2 15UP Rev02

7.2 COMMANDES DANS UN FICHIER DISQUE SEQUENTIEL NONCATALOGUE

STEP.....DEBUG=(MONFIC,DVC=MS/M452,MD=K999);...ENDSTEP;

La description du fichier s'indique entre parenthèses. Elle comprend le nom du fichier(MONFIC dans le cas présent), le volume sur lequel il se trouve (K999) et le type devolume (une unité de disques MSU 452).

7.3 COMMANDES DANS UN FICHIER SEQUENTIEL CATALOGUE

STEP.....DEBUG=DEPT1.JEAN.BDFIC;...ENDSTEP;

On n'indique que le nom du fichier. Sa structure (combinaison de noms simples et depoints) reflète l'organisation arborescente du catalogue d'où seront extraites lescaractéristiques du fichier.

7.4 COMMANDES DANS UNE UNITE DE BIBLIOTHEQUE ORIGINE NONCATALOGUEE

Les commandes PCF peuvent avoir été préparées à l'aide de l'éditeur de textes etenregistrées dans une bibliothèque SL.

STEP.....DEBUG=(MABIBLI,DVC=MS/M452,MD=K999, SUBFILE=BD);...ENDSTEP;

La description de l'unité de bibliothèque contenant les commandes s'indique entreparenthèses. Elle comprend la description complète de la bibliothèque (nom, volume ettype de volume), ainsi que le nom de l'unité à la suite du mot-clé SUBFILE (BD dans lecas présent).

Page 95: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Appel de PCF en traitement par lots

47 F2 15UP Rev02 7-3

7.5 COMMANDES DANS UNE UNITE DE BIBLIOTHEQUE ORIGINECATALOGUEE

STEP.....DEBUG=(DEPT1.JEAN.PROPBIB, SUBFILE=BDCOMDS);...ENDSTEP;

La description des entrées de PCF se limite au nom de la bibliothèque cataloguée (quireflète la structure arborescente du catalogue) et à celui de l'unité contenant le texte descommandes (BDCOMDS dans le cas présent).

Page 96: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

7-4 47 F2 15UP Rev02

Page 97: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 8-1

8. Appel de PCF en interactif

Il est possible d'utiliser PCF sous IOF pour la mise au point de programmes COBOL,FORTRAN, GPL ou C, en adressage symbolique, effectif ou semi-symbolique. Leproduit est pratiquement le même qu'en traitement par lots. En effet, les fonctionsoffertes, la syntaxe des commandes et le comportement du système sont identiquesdans ces deux modes. Certaines commandes sont plus particulièrement utiles eninteractif. Egalement disponibles en traitement par lots, elles n'offrent toutefois qu'unintérêt limité dans ce cas. Toutes les commandes ayant été décrites au chapitre 6, leprésent chapitre traite seulement du lancement de PCF sous IOF. Le chapitre 17 fournitune description plus détaillée du dialogue établi entre PCF et l'utilisateur IOF.

8.1 DEFINITION D'UNE SESSION DE MISE AU POINT

PCF est appelé si le paramètre DEBUG est spécifié dans la commande GCL EXEC_PG.Ce paramètre peut avoir deux valeurs:

• la valeur implicite TN pour indiquer que toutes les commandes PCF s'introduisentdirectement au terminal,

• le nom d'un fichier séquentiel dans lequel sont lues les commandes PCF. D'autrescommandes peuvent ensuite s'introduire au terminal.

Page 98: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

8-2 47 F2 15UP Rev02

Exemples :

Commandes introduites directement au terminal :

EXEC_PG...DEBUG=TN;

Commandes dans un fichier séquentiel non catalogué :

EXEC_PG...DEBUG=BDFIC:K999:MS/M452;

Commandes dans un fichier séquentiel catalogué :

EXEC_PG...DEBUG=REP_PRINC.FICPCF;

Commandes dans une unité de bibliothèque origine non cataloguée :

EXEC_PG...DEBUG=MABIB..BDBM:MS/M452;

Commandes dans une unité de bibliothèque origine cataloguée :

EXEC_PG...DEBUG=REP_PRINC.BIBSL..MBPCF;

Pour s'exécuter, PCF exige l'introduction de commandes au terminal utilisateur ou àpartir d'un fichier. C'est la seule différence avec le lancement de PCF en traitement parlots, la syntaxe et la signification des commandes restant les mêmes. Celles comportantune clause "Quand" sont exécutées lorsque le traitement atteint le(s) point(s)d'intervention spécifié(s), les autres le sont immédiatement. L'exécution du programmeest lancée au moyen d'une commande GO (ou /) immédiate.

Le programme utilisateur s'exécute alors jusqu'à ce que l'un des points d'interventionspécifiés soit atteint. Si une commande PAUSE est associée à ce point, l'exécution estsuspendue dans l'attente de commandes de mise au point. Là encore, tous les types decommandes, avec ou sans clause "Quand", sont autorisés. L'exécution reprend à la suited'une commande GO (ou /) ou GOTO. En l'absence de commande PAUSE, l'opérationrequise au point d'intervention est effectuée, les résultats sont affichés et l'exécutionreprend immédiatement.

8.2 TEXTES HELP

En GCL, on dispose en interactif d'un système de documentation en ligne permettantd'accéder à des menus, messages de guidage et textes HELP relatifs aux commandesPCF. Toutes les directives GCL, ainsi que toutes les procédures GCL compilées dans ledomaine PCF, sont exécutables avec PCF en interactif. Pour plus de détails sur GCL, sereporter au manuel de référence de l'utilisateur IOF (22UJ).

Remarque : Il est impossible d'accéder au texte HELP relatif à un paramètrede commande PCF en frappant "?" après cette commande enmode ligne.

Page 99: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Appel de PCF en interactif

47 F2 15UP Rev02 8-3

8.3 LANCEMENT IMMEDIAT DE PCF

Il existe une autre façcon de lancer PCF, même si le paramètre DEBUG n'a pas étéspécifié dans la commande EXEC_PG lançant le programme utilisateur. Pendantl'exécution d'un programme interactif, l'utilisateur peut appuyer à tout moment sur latouche Interruption du terminal pour suspendre l'exécution. En ce qui concerne lesterminaux non pourvus de ce type de touche, on obtient le même effet en introduisant laséquence de caractères $*$BRK en début de ligne. IOF réagit à l'interruption enenvoyant trois points d'interrogation (???), puis attend une réponse de l'utilisateur. Si laréponse est DEBUG, PCF est lancé. Tout se passe ensuite comme si l'utilisateur avaitdemandé une PAUSE au point d'interruption.

PCF exige donc l'introduction de commandes, qui peuvent être immédiates oucomporter une clause "Quand", et l'exécution reprend sur une commande GO (ou /) ouGOTO immédiate.

Cette méthode est particulièrement intéressante pour la mise au point de programmesprésentant des anomalies ou se bloquant sur une boucle. Dans ce cas, l'appel de PCFpermet de rechercher les conditions dans lesquelles ce comportement imprévu apparaîtet, éventuellement, d'y remédier. En général, la première commande que l'utilisateurintroduit après une interruption et DEBUG est WHERE avec l'option TRACK (voirChapitre 6), afin de déterminer le contexte exact dans lequel le programme estsuspendu. L'utilisateur peut entreprendre une mise au point pas à pas en émettant unesérie de commandes PAUSE à intervalles réguliers aux alentours du point d'arrêt duprogramme, puis relancer l'exécution au moyen d'une commande GO (ou /).

8.4 TRAITEMENT DES INTERRUPTIONS

L'utilisateur peut également utiliser la touche Interruption en cours d'exécution de PCFen interactif, et non pas de l'exécution du programme utilisateur. Le traitement desinterruptions est toutefois différent dans ce cas. PCF réagit à une interruption enenvoyant trois points d'interrogation (???), puis attend une réponse.

1. Si la réponse est RS ou RESUME, l'exécution de PCF reprend au pointd'interruption comme si rien ne s'était passé.

2. Si la réponse est QUIT, PCF et le programme en cours de mise au point s'arrêtenttous deux prématurément.

3. Si la réponse est IT (ou /), les commandes PCF prévues sont abandonnées et PCFest relancé au point d'intervention en cours.

4. Si la réponse est DEBUG, toutes les commandes PCF prévues pour s'exécuter à cepoint sont menées à terme et PCF est relancé au point d'intervention en cours.

Page 100: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

8-4 47 F2 15UP Rev02

Page 101: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 9-1

9. Appel de PCF en télétraitement par lots

PCF permet la mise au point interactive de programmes en traitement par lots, à partird'un terminal IOF ou RBF. Les programmes peuvent être en COBOL, FORTRAN, GPLou C, le mode d'adressage étant symbolique, effectif, ou semi-symbolique. Le produitPCF en télétraitement par lots est pratiquement le même qu'en traitement par lots ou eninteractif. En effet, les fonctions offertes, la syntaxe des commandes et le comportementdu système sont identiques dans ces trois modes. Seule la méthode de lancement dePCF est différente et fait donc l'objet du présent chapitre.

9.1 PREPARATION D'UNE SESSION DE MISE AU POINT ENTELETRAITEMENT PAR LOTS

Les travaux à exécuter en traitement par lots peuvent être soumis:

• à partir du site central,

• à partir d'une station à distance,

• à partir d'un terminal IOF.

Dans tous les cas, un terminal, dit console implicite, est associé au travail soumiscomme terminal de dialogue. Dans le premier cas, la console implicite est la consolesystème du site central; dans le deuxième, c'est la console système de la station àdistance; dans le troisième, c'est le terminal IOF à partir duquel les travaux sont soumis.L'ordre JCL CONSOLE permet de ne pas utiliser la console implicite et de spécifier leterminal de dialogue pour la totalité ou une partie d'un travail.

9.1.1 Ordre CONSOLE

{ CONSOLE }{ } [identification-utilisateur]{ CNSL }

Les messages seront dans ce cas envoyés au terminal connecté au système sousl'identification utilisateur indiquée. En l'absence d'identification dans l'ordre, la consolesystème du site central est implicite.

Tous les travaux auxquels est associée une console autre que la console système dusite central ont accès à PCF en télétraitement par lots. Il s'agit donc des travaux suivants:

Page 102: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

9-2 47 F2 15UP Rev02

• travaux soumis à partir du site central, avec un ordre JCL CONSOLE explicitespécifiant un terminal utilisateur IOF,

• travaux soumis à partir d'une station à distance, sans affectation explicite desmessages à la console système du site central,

• travaux soumis à partir d'un terminal IOF sans affectation explicite des messages à laconsole système du site central.

Comme en traitement par lots, PCF en télétraitement par lots est appelé si le mot-cléDEBUG est spécifié dans l'ordre JCL STEP lançant le programme à mettre au point. Lescommandes devant être introduites à partir d'un terminal IOF qui est le terminal dedialogue du travail, il n'y a pas à mentionner de description de fichier à la suite deDEBUG. Le format de l'ordre STEP est donc le suivant:

STEP nom-module-chargeable, description-bibliothèque-modules-chargeables, DEBUG;

Page 103: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Appel de PCF en télétraitement par lots

47 F2 15UP Rev02 9-3

9.2 LANCEMENT DE LA SESSION

Il y a plusieurs manières de soumettre un travail à exécuter :

• ordre JCL RUN,

• commande GCL ENTER_JOB_REQ

• commandes opérateur sur le site central ou à distance.

Dans tous les cas, ces travaux ont en commun de ne pas être immédiatement exécutésmais d'abord "planifiés". Cet état peut durer de quelques secondes à plusieurs heures.Comme ce délai est difficilement prévisible et dépend de divers facteurs (nombred'utilisateurs du système, conflits au sujet des ressources système ou décisions del'opérateur), il est impossible de laisser un terminal attendre que le travail soit prêt à êtremis au point. En fait, dès que le travail a été soumis, le terminal utilisateur est libéré pourd'autres tâches. Une fois le travail planifié et l'activité à mettre au point prête à êtreexécutée, un message apparaît au terminal de dialogue :

-->Xnnn READY FOR DEBUGGING

Xnnn est le numéro de passage (RON) du travail soumis. Si le terminal de dialogue n'estpas en communication avec le système à ce moment-là, le travail soumis s'arrêteprématurément avec le code retour TERNAV (Terminal Not Available- Terminal nondisponible).

Informé que le travail soumis est prêt à être mis au point, l'utilisateur dispose encore detemps pour achever l'activité en cours (environ 5 minutes, au-delà desquelles, faute deréponse, le travail soumis s'arrête prématurément et le message Xnnn DEBUGGING TIMEOUT - fin du temps imparti pour mise au point - apparaît auterminal utilisateur). Une fois l'activité terminée, il indique qu'il est prêt à effectuer lamise au point de la manière suivante :

DEBUG Xnnn;

Xnnn est le numéro de passage du travail mis au point, tel qu'il figurait dans le premiermessage. A partir de cet instant, le terminal utilisateur est réservé à la mise au point del'activité soumise, jusqu'à ce que l'exécution de cette dernière soit terminée.

Page 104: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

9-4 47 F2 15UP Rev02

9.3 DEROULEMENT DE LA SESSION

Une fois que DEBUG est introduit, PCF exige que des commandes soient fournies auterminal et non lues dans un fichier. C'est la seule différence avec les autres modes. Lasyntaxe et la signification des commandes restent les mêmes. Celles comportant uneclause "Quand" sont exécutées lorsque le programme atteint le(s) point(s) d'interventionspécifié(s); les autres le sont immédiatement. L'exécution du programme est lancée aumoyen d'une commande GO (ou /) immédiate.

Le programme utilisateur s'exécute alors jusqu'à ce que l'un des points d'interventionspécifiés soit atteint. Si une commande PAUSE est associée à ce point, l'exécution estsuspendue dans l'attente de commandes de mise au point. Là encore, tous les types decommandes, avec ou sans clause "quand", sont autorisés. L'exécution reprend à la suited'une commande GO ou GOTO immédiate. En l'absence de commande PAUSE,l'opération requise au point d'intervention est exécutée, les résultats sont affichés etl'exécution reprend immédiatement.

Si la mise au point est interrompue par un incident, que l'utilisateur demande la fin de lasession de mise au point ou qu'il y ait fin anormale de la session IOF (incident de ligne,d'alimentation, etc.) par exemple, l'activité en traitement par lots s'arrête prématurément.

9.4 TEXTES HELP

Sous IOF, on dispose en télétraitement par lots d'un système de documentation en lignepermettant d'accéder à des menus, messages de guidage et textes HELP relatifs auxcommandes PCF. Toutes les directives GCL, ainsi que les procédures GCL compiléesdans le domaine PCF, sont exécutables avec PCF en télétraitement par lots. Pour plusde détails sur GCL, se reporter au manuel de référence de l'utilisateur IOF (22UJ).

Remarque : Il est impossible d'accéder au texte HELP relatif à un paramètred'une commande PCF en frappant "?" après cette commande enmode ligne.

Page 105: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Appel de PCF en télétraitement par lots

47 F2 15UP Rev02 9-5

9.5 LANCEMENT IMMEDIAT DE PCF

Il existe une autre façon de lancer PCF en télétraitement par lots. Pendant l'exécutiond'un programmme dans ce mode, l'utilisateur peut appuyer à tout moment sur la toucheInterruption du terminal pour suspendre l'exécution. En ce qui concerne les terminauxnon pourvus de ce type de touche, on obtient le même effet en introduisant la séquencede caractères $*$BRK en début de ligne. IOF réagit en envoyant trois pointsd'interrogation (???), puis attend une réponse de l'utilisateur. Si la réponse est DEBUG,PCF est lancé. Tout se passe ensuite comme si l'utilisateur avait demandé une PAUSEau point d'interruption. PCF exige donc l'introduction de commandes, qui peuvent êtreimmédiates ou comporter une clause "Quand", et l'exécution reprend sur une commandeGO (ou /) ou GOTO immédiate.

Cette méthode est particulièrement intéressante pour la mise au point de programmesprésentant des anomalies ou se bloquant sur une boucle. Dans ce cas, l'appel de PCFpermet de rechercher les conditions dans lesquelles ce comportement imprévu apparaîtet, éventuellement, d'y remédier. En général, la première commande que l'utilisateurintroduit après une interruption et DEBUG est WHERE avec l'option TRACK (voirchapitre 6), afin de déterminer le contexte exact dans lequel le programme estsuspendu. L'utilisateur peut entreprendre une mise au point pas à pas en émettant unesérie de commandes PAUSE à intervalles réguliers aux alentours du point d'arrêt duprogramme, puis en relancer l'exécution au moyen d'une commande GO (ou /).

9.6 TRAITEMENT DES INTERRUPTIONS

L'utilisateur peut également utiliser la touche Interruption en cours d'exécution de PCFen télétraitement par lots et non pas de l'exécution du programme utilisateur. Letraitement des interruptions est toutefois différent dans ce cas de celui en interactif. Lesinterruptions de PCF en télétraitement par lots sont en effet ignorées, sauf en coursd'impression de résultats. Dans ce cas, PCF réagit en envoyant trois pointsd'interrogation (???), puis attend une réponse.

1. Si la réponse est RS ou RESUME, l'impression reprend au point d'interruption,comme si rien ne s'était passé.

2. Si la réponse est QUIT, la session de mise au point est terminée et le travail entraitement par lots s'arrête prématurément.

3. Si la réponse est IT (ou /), toutes les commandes PCF prévues pour s'exécuter à cepoint sont abandonnées et PCF est relancé au point d'intervention en cours.

4. Si la réponse est DEBUG, toutes les commandes PCF prévues pour s'exécuter à cepoint sont menées à terme et PCF est relancé au point d'intervention en cours.

Page 106: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

9-6 47 F2 15UP Rev02

Page 107: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 10-1

10. Appel de PCF en traitement transactionnel

10.1 MISE AU POINT LOCALE

Connecté à une session TDS, l'utilisateur peut appeler PCF au moyen de la commandeTRACE.

Ce mode de mise au point est essentiellement statique car les commandes PCF doiventêtre entrées avant le lancement de la routine TPR et n'offrent ensuite aucune possibilitéd'intéraction avec l'utilisateur.

10.1.1 Appel par TRACE PRINT

Avant de lancer une application TDS, il faut affecter le nom de fichier interne (nfi)DBUGFILE à la bibliothèque devant recevoir les sorties de PCF. A la réception dumessage READY en cours de session TDS, taper :

TRACE PRINT PCF

Le message suivant apparaît :

TERMINAL IN TRACE MODE OUTPUT ON xxxxENTER COMMAND

(Terminal en mode jalonnement. Sorties dans xxxx. Introduire la commande)

xxxx est le nom de l'unité de bibliothèque (dans DBUGFILE) devant recevoir les sortiesde PCF.

Il est maintenant possible d'introduire une commande PCF au clavier. Chaquecommande est suivie du message "ENTER COMMAND" pour indiquer à l'utilisateur qu'ilpeut en introduire une autre. Une fois toutes les commandes introduites, il faut taperEOD (End Of Debugging, fin de mise au point), qui sera suivi du message "READY". Ilest alors possible d'exécuter une nouvelle routine TPR.

Page 108: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

10-2 47 F2 15UP Rev02

10.1.2 APPEL PAR TRACE SEND

Il est possible de recevoir les sorties PCF sur imprimante, si le terminal connecté à lasession TDS en comporte une. A la réception du message "READY" en cours de sessionTDS, taper:

TRACE SEND PCF

Le message suivant apparaît:

TERMINAL IN TRACE MODE OUTPUT ON yyyyENTER COMMAND

(Terminal en mode jalonnement. Sorties dans yyyy. Introduire la commande)

yyyy est le nom de l'imprimante associée au terminal. L'utilisateur peut introduire unenouvelle commande PCF après chaque message "ENTER COMMAND". Pour mettre finau jalonnement de la routine TPR, taper "EOD". A la réception du message "READY", ilest possible d'exécuter une nouvelle routine TPR. Si PCF est lancé, ses sorties serontdirigées vers l'imprimante.

Page 109: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Appel de PCF en traitement transactionnel

47 F2 15UP Rev02 10-3

10.2 MISE AU POINT A DISTANCE

Ce mode de mise au point est interactif, les commandes PCF étant appliquées durantl'exécution de la routine TPR de traitement transactionnel. PCF marque une pause àchaque première ligne d'une routine TPR de la transaction et des pausessupplémentaires peuvent être imposées aux endroits souhaités via la commandePAUSE.

10.2.1 Préalables

Les terminaux requis pour la mise au point à distance d'une transaction sont les suivants:

• Un terminal connecté au TDS, pour activer les commandes et écrans de la TPR.

• Un terminal connecté à IOF (avec le même ID utilisateur que celui utilisé pour TDS),pour entrer les commandes PCF.

• Un terminal-X avec multi-fenêtrage exécutant AFFINITY.

10.2.2 Procédure

10.2.2.1 Connexion au terminal IOF

La connexion au terminal IOF doit être établie avant de lancer la transaction, faute dequoi le travail transactionnel de mise au point à distance s'arrêtera prématurément avecle code retour TERNAV.

10.2.2.2 Activation du mode mise au point

Cette activation se fait à partir du terminal TDS en tapant, à la suite du message deguidage "READY" :

TRACE PRINT XPCFLe message ci-après s'affichera sur l'écran TDS :

TERMINAL IN TRACE MODE OUTPUT ON xxxx

10.2.2.3 Activation de la transaction

Entrer le nom de la transaction à mettre au point.

Page 110: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

10-4 47 F2 15UP Rev02

Le message ci-après s'affiche sur l'écran IOF :

- - > TX_NOM READY FOR DEBUGGING

TX_NOM est le nom de la transaction spécifié précédemment.

10.2.2.4 Réponse dans le délai imparti

Une fois que la transaction soumise a été déclarée prête à la mise au point, un délaisuffisant (cinq minutes environ) est laissé à l'utilisateur pour mener à bien son activité encours. Si, passé ce délai, l'utilisateur n'a pas envoyé de réponse, la transaction estarrêtée prématurément et le message "Xnnn DEBUGGING TIMEOUT" s'affiche auterminal.

10.2.2.5 Entrée des commandes PCF

Une fois prêt à communiquer avec le programme mis au point, taper :

DEBUG TX=TX_NOM

TX_NOM est le nom de la transaction tel qu'il est apparu dans le premier message denotification de PCF. Dès lors et jusqu'à la fin de la transaction, le terminal de l'utilisateurse consacre à la mise au point de la transaction. Chaque commande PCF peut êtreentrée à la suite du caractère de guidage "D". Les deux premières doivent être :

SM nom-module-partageable;

IN nom-tpr;

10.2.3 Restrictions

La mise au point est soumise aux restrictions suivantes :

• Aucune interruption ne peut être émise.

• Une commande "APPLY SM nom-module-partageable" doit obligatoirement êtreémise avant tout autre commande PCF, pour chaque TPR, même si la même TPR estappelée plusieurs fois dans une transaction. En effet, les commandes PCF appliquéesà une TPR sont perdues en fin d'exécution de la routine à la fin TPR.

• PCF ne peut être activé que par un utilisateur à la fois pour une application TDSdéterminée.

• Les commandes ci-après ne peuvent pas être utilisées :

- BEGIN

- CHECKPOINT

Page 111: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Appel de PCF en traitement transactionnel

47 F2 15UP Rev02 10-5

10.2.4 Exemple de mise au point transactionnelle à distance

Dans cet exemple, les entrées de l'utilisateur apparaissent en gras.

Sur le terminal TDS Sur le terminal IOF

READYTRACE PRINT XPCFTERMINAL IN TRACE OUTPUT ON xxxxMYTX

---> MYTX READY FOR DEBUGGINGS: DEBUG TX = MYTX;>>> 15:30 DEBUG 100.00((( PCT AT LN 1 ILN 1 IN MY_TPR1.... PCF AT BEGINNING OF MY_TPR1 INMYTX.... 80 D: A SM SMTPR;... 90 D: A IN MYTPR1;... 100 D: p at In 22;... 110 D: go;)))((( PCT AT LN 22 ILN 20 IN MY_TPR1.... 80 D: A SM SMTPR;... 90 D: A IN MYTPR1;... 100 D: d stat;... STAT " "... 110 D: go;)))((( PCT AT LN 1 ILN 1 IN MY_TPR1.... PCF AT BEGINNING OF MY_TPR1 INMYTX.... 80 D: A SM SMTPR;... 90 D: A IN MYTPR2;... 100 D: ...;... 110 D:...;... 120 D: go;)))>>> 15:40>>> 15:40

Page 112: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

10-6 47 F2 15UP Rev02

Page 113: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 11-1

11. Mise au point de programmes COBOL

Ce chapitre traite exclusivement des caractéristiques de PCF relatives à la mise au pointde programmes COBOL.

11.1 TYPES DE VARIABLES

Les différents types de variables COBOL sont :

• booléen (BIT PIC 1...)• booléen (BIT DISPLAY PIC 1...)• entiers demi-mot (COMP-1)• entiers mot (COMP-2)• nombres réels en simple précision (COMP-9)• nombres réels en double précision (COMP-10)• nombres réels en quadruple précision (COMP-15)• nombres en décimal condensé signés (COMP-3 ou COMP-8 PIC S99..)• nombres en décimal condensé non signés (COMP3 ou COMP-8 PIC 99..)• nombres en décimal éclaté avec signe séparé à gauche (DISPLAY PIC S99..

LEADING SEPARATE)• nombres en décimal éclaté avec signe séparé à droite (DISPLAY PIC S99.. TRAILING

SEPARATE)• nombres en décimal éclaté avec signe superposé à gauche (DISPLAY PIC S99..

LEADING)• nombres en décimal éclaté avec signe superposé à droite (DISPLAY PIC S99..

TRAILING)• nombres en décimal éclaté non signés (DISPLAY PIC 99..)• nombres ASCII en décimal condensé signés (COMP-5)• nombres en virgule flottante en décimal éclaté non signés.

Tous les autres types de données sont considérés comme des chaînes de caractères. Anoter que COMP équivaut à COMP-3, sauf si le format a été modifié en DEFAULTSECTION de la CONTROL DIVISION.

Page 114: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

11-2 47 F2 15UP Rev02

Les variables peuvent être des variables scalaires simples ou des agrégats (groupes ouarticles) pouvant comporter jusqu'à trois clauses OCCURS emboîtées. Les limites d'uneclause OCCURS peuvent être soit fixes, soit variables (DEPENDING ON), ce qui permetla définition de tables de dimension variable.

Il existe trois modes d'affectation mémoire:

• statique (variables "normales")• externe (avec clause EXTERNAL)• par paramètres (définis en LINKAGE SECTION)

Les noms utilisés dans les groupes et les articles peuvent être qualifiés, afin d'évitertoute ambiguïté. Les noms qualifiés sont cités en PCF sous leur nom COBOL, avec lesmêmes règles de qualification.

Exemple :

GHI IN DEF IN ABC

Remarque : IN et OF s'utilisent indifféremment comme conjonction pour desnoms qualifiés.

PCF peut accéder à tous ces types de variables de forme symbolique en faisantsimplement référence au nom qu'elles portent dans le programme origine (voirconventions au Chapitre 3).

Page 115: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes COBOL

47 F2 15UP Rev02 11-3

11.2 LITTERAUX

Tous les littéraux COBOL sont autorisés en PCF pour modifier la valeur d'une variable(CHANGE) ou effectuer des comparaisons (clause IF). Exemples :

• entiers sous forme de nombres en décimal éventuellement signés : 10 +20 -20

• nombres fractionnaires décimaux en virgule fixe : 10.20 -0.70 172.321

• chaînes de caractères sous forme de série de caractères entre guillemets :

"CECI EST UN EXEMPLE DE CHAINE DE LITTERAL"

"""BONJOUR"""

Page 116: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

11-4 47 F2 15UP Rev02

11.3 REFERENCE AUX INSTRUCTIONS

Les instructions COBOL peuvent être désignées par :

• un nom de paragraphe ou de section, ou

• un numéro de ligne

Les noms de section et de paragraphes COBOL sont une combinaison de lettres, chiffreset traits d'union. Ils sont désignés de la même façon en PCF.

Exemple :

DUMP PR AT PARAG-1, SECT-1;

Cette commande demande l'affichage de la variable PR chaque fois que le traitementatteint un début de paragraphe ou de section portant l'étiquette PARAG-1 ou SECT-1.

Les numéros de ligne internes COBOL figurent sur la liste de compilation (voir en 11.4.2)sous l'en-tête ILN de la première colonne et les numéros de ligne externes sous l'en-têteXLN de la deuxième colonne (voir en 11.4.2). Les numéros de ligne externes peuventprendre trois formes:

• les numéros de lignes d'origine apparaissent sous la forme de nombres en décimal etpeuvent être cités tels quels.

• les lignes ayant été insérées par l'éditeur de textes ou modifiées par l'instructionALTER sont précédées d'un point. Elles doivent être désignées comme suit :

n1.n2

n1 est le numéro de la ligne d'origine précédant immédiatement celle à laquelle il estfait référence, et n2 le numéro de la ligne désignée (précédée d'un point sur la liste;n2 est égal à zéro si le point figure seul sur la ligne).

• les lignes copiées à l'aide de l'instruction COPY sont précédées de deux points. Ellesdoivent être désignées comme suit:

n1..n3

n1 est le numéro de la ligne d'origine précédant immédiatement celle à laquelle il estfait référence, et n3 le numéro de la ligne désignée (précédée de deux points sur laliste). Si la ligne précédant le texte copié a été modifiée par l'éditeur de textes, laréférence se présente de la façon suivante:

n1.n2.n3

n1.n2 identifie la ligne précédant le texte copié et n3 est le numéro de la lignedésignée.

L'exemple de session de mise au point (voir en 11.4) comporte des références. Il estpossible par ailleurs de citer une instruction figurant sur une ligne comprenant plusieursinstructions en spécifiant son rang précédé d'un astérisque, juste après le numéro deligne.

Page 117: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes COBOL

47 F2 15UP Rev02 11-5

Exemples :

LINE 100*2

LN 1000.30*3

LINE 120..20*2

LN 130.10.30*4

Lorsqu'aucun rang n'est indiqué, la première instruction de la ligne est implicite.

11.4 EXEMPLE DE SESSION DE MISE AU POINT COBOL

Les paragraphes 11.4.1 à 11.4.3 illustrent un exemple de session de mise au pointCOBOL. Le programme origine est listé tel qu'il apparaît sur le compte rendu decompilation (11.4.2), avec les commandes PCF utilisées (11.4.1) et les résultats de lasession (11.4.3).

Les commandes utilisées sont les suivantes :

• Une commande APPLY spécifiant à quel programme s'appliquent les commandes quisuivent. Elle peut être omise, si le module chargeable ne comprend qu'un seulprogramme,

• Une commande TRACE avec option MAP (commande 1) demandant la générationd'une table de toutes les étiquettes avec le nombre de fois où elles ont été détectés,

• Une commande DUMP (commande 2) demandant l'affichage de l'élément COST(coût) du groupe STRUC à la ligne 20 du texte inséré par l'instruction COPY qui suit laligne 170,

• Une commande DUMP (commande 3) demandant l'affichage des éléments COST etRATE (taux) et lorsque le traitement atteint la deuxième instruction de la ligne 210,

• Une commande CHANGE (commande 4) demandant la modification de la variableRATE lorsque le traitement atteint la ligne 210,

• Une commande DUMP (commande 5) demandant l'affichage de la variable TITRElorsque le traitement atteint le paragraphe FIN.

Page 118: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

11-6 47 F2 15UP Rev02

11.4.1 Exemple de commandes PCF de mise au point d'un programmeCOBOL

+--------------------------------------------------------------+| || APPLY IN PROCCOB; || 1 TRACE MAP AT ALL-LABELS; || 2 DUMP COST IN STRUC AT || ILN 20; || 3 DUMP COST,RATE AT LINE 210*2; || 4 CHANGE RATE=0.32 AT LINE 210; || 5 DUMP TITRE AT FIN; || |+--------------------------------------------------------------+

11.4.2 Exemple de liste de programme COBOL

+--------------------------------------------------------------+| || 1 10 IDENTIFICATION DIVISION. || 2 20 PROGRAM-ID. PROCCOB || 3 30 ENVIRONMENT DIVISION. || 4 40 CONFIGURATION SECTION || 5 50 SOURCE-COMPUTER. LEVEL-64. || 6 60 OBJECT-COMPUTER. LEVEL-64. || 7 70 DATA DIVISION. || 8 80 WORKING-STORAGE SECTION. || 9 90 01 STRUC. || 10 100 02 PRICE PIC 9(6)V99. || 11 110 02 COST PIC S9(6)V99. || 12 120 02 RATE PIC 99999V99 USAGE IS COMP-3.|| 13 130 02 NEWPRICE PIC **99999V99. || 14 140 02 POURC PIC S9(5)V99 USAGE IS COMP-3.|| 15 150 01 TITRE PIC X(8). || 16 160 PROCEDURE DIVISION. || 17 170 DEBUT. || 18 . . COPY INC1. || 19 ..10 MOVE 18.4 TO COST. || 20 ..20 MOVE "PCF-TEST" TO TITRE. || 21 190 COPY INC2. || 22 ..10 MOVE 0.75 TO RATE. || 23 . COMPUTE PRICE = COST * RATE. || 24 210 ADD 1 TO PRICE. ADD 2 TO COST. MOVE PRICE TO|| NEWPRICE. || 25 220 MULTIPLY RATE BY 100 GIVING POURC. || 26 230 FIN. || 27 240 STOP RUN. |+--------------------------------------------------------------+

Page 119: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes COBOL

47 F2 15UP Rev02 11-7

Les résultats (en 11.4.3) apparaissent dans l'ordre d'exécution des commandes, soit :

commande 2commande 4commande 3commande 5

et, en dernier, ceux de la commande 1, du fait de sa nature (commande POST-MORTEM), les statistiques d'utilisation des paragraphes et sections ne pouvant s'afficherqu'après la fin du programme.

Chaque fois qu'un point d'intervention est atteint, le nom de section ou de paragraphe(s'il y en a un) s'affiche avec le numéro de ligne correspondant. Puis viennent lesnuméros des commandes applicables, avec le verbe et les résultats et/ou opérationseffectuées.

Page 120: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

11-8 47 F2 15UP Rev02

11.4.3 Exemple de compte rendu d'exécution de PCF pour un programmeCOBOL

******************************************************************************************************************************************** GCOS7 ******** P C F ( D E B U G ) ******** VERSION: 90.00 DATED: SEP 01, 1989 *********DOC_COBOL_RES*"*************************************************************************"******************************************

(((PCF AT PROCCOB(-32) LINE 10 ILN 1 IN PROCCOB...PCF AT BEGINNING OF MAIN PROCEDURE....100 APPLY IN PROCCOB;... * APPLY IN PROCCOB , COMPILE UNIT COBOL1.58, CREATED ON 15:11:24... MAR 29, 1991$ DATA BASE O0 8.10.006C ....1 1 TRACE MAP AT ALL-LABELS;...2 2 DUMP COST IN STRUC AT ILN 20;...3 3 DUMP COST, RATE AT LINE 210*2;...4 4 CHANGE RATE=0.32 AT LINE 210;...5 5 DUMP TITRE AT FIN;)))(((PCF AT * LINE 170.10.20 ILN 20 IN PROCCOB...2 DUMP... COST +000018.40)))(((PCF AT * LINE 210 ILN 24 IN PROCCOB...4 CHANGE... RATE 00000.32 (00000.75 ))))(((PCF AT * LINE 210*2 ILN 24 IN PROCCOB...3 DUMP... COST +000018.40... RATE 00000.32)))(((PCF AT FIN LINE 230 ILN 26 IN PROCCGB...5 DUMP... TITRE "PCF-TEST")))(((PCF AT POST MORTEM....1 TRACE... 1 DEBUT LINE 170 ILN 17 IN PROCCOB... 1 FIN LINE 230 ILN 26 IN PROCCOB)))

Page 121: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 12-1

12. Mise au point de programmes FORTRAN

Ce chapitre traite exclusivement des caractéristiques de PCF relatives à la mise au pointde programmes FORTRAN.

12.1 TYPES DE VARIABLES

Les différents types de variables FORTRAN sont :

• entiers mot (INTEGER)

• nombres réels en simple précision (REAL)

• nombres réels en double précision (DOUBLE PRECISION)

• nombres réels en quadruple précision (QUADRUPLE PRECISION)

• nombres complexes en simple précision (COMPLEX)

• nombres complexes en double précision (COMPLEX DOUBLE PRECISION)

• chaînes de caractères (CHARACTER)

• valeurs logiques (LOGICAL)

Les variables peuvent être des variables scalaires simples ou des agrégats (tableaux).Les tableaux peuvent avoir une à sept dimensions. Lorsqu'un tableau est utilisé commeparamètre de sous-programme ou de fonction, ses dimensions peuvent être variables(définies à l'aide d'une variable). Dans tous les autres cas, elles sont fixes.

Il existe trois modes d'affectation mémoire :

• statique (variables "normales"),

• COMMON,

• par paramètres dans des fonctions ou sous-programmes.

PCF peut accéder à tous ces types de variables de forme symbolique en faisantsimplement référence au nom qu'elles portent dans le programme origine (voirconventions au chapitre 3).

Page 122: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

12-2 47 F2 15UP Rev02

12.2 CONSTANTES

Toutes les constantes FORTRAN sont autorisées en PCF pour modifier la valeur d'unevariable (CHANGE) ou effectuer des comparaisons (clauses IF). Exemples :

• entiers sous forme de nombres en décimal éventuellement signés :

10 +2 -999

• nombres réels en virgule fixe ou flottante :

+17.3 -1.2E-4 6.2D8 -7.345678Q-12

• nombres complexes sous forme de deux nombres réels ou entiers séparés par unevirgule, le tout entre parenthèses :

(17.2, 21.3) (1.6E27,1.7E-12) (-6.2,0)

• chaînes de caractères sous forme de série de caractères entre guillemets :

"CECI EST UNE CHAINE" """BONJOUR"""

(A noter que la notation Hollerith FORTRAN n'est pas autorisée en PCF et que lesapostrophes doivent être remplacées par des guillemets.)

• constantes logiques exprimées par les lettres T et F entre deux points :

.T. .F.

Page 123: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes FORTRAN

47 F2 15UP Rev02 12-3

12.3 REFERENCE AUX INSTRUCTIONS

Les instructions FORTRAN peuvent être désignées par:

• une étiquette ou

• un numéro de ligne

Les étiquettes FORTRAN sont numériques et désignées sous cette forme en PCF.

Exemple :

DUMP P AT 100, 200, 9999;

Cette commande demande l'affichage de la variable P chaque fois que le traitementatteint le début d'une instruction portant l'étiquette 100, 200 ou 9999.

Les numéros de ligne internes FORTRAN figurent en première colonne de la liste decompilation (voir en 12.4.1), et les numéros de ligne externes en deuxième colonne (voiren 12.4.1). Les numéros de ligne externes peuvent prendre l'une des formes suivantes :

• Les numéros de lignes d'origine apparaissent sous forme de nombres en décimal etpeuvent être cités tels quels,

• Les lignes ayant été insérées par l'éditeur de textes sont précédées d'un point. Ellessont désignées comme suit :

n1.n2

n1 est le numéro de la ligne d'origine précédant immédiatement celle à laquelle il estfait référence et n2 le numéro de la ligne désignée (précédée d'un point sur la liste).

L'exemple de session de mise au point au paragraphe suivant comporte des références.Il est possible par ailleurs de citer une instruction figurant sur une ligne comprenantplusieurs instructions en spécifiant son rang précédé d'un astérisque, juste après lenuméro de ligne.

Exemples :

LINE 1020*2

LN 1100.0*3

Lorsqu'aucun rang n'est indiqué, la première instruction de la ligne est implicite.

Page 124: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

12-4 47 F2 15UP Rev02

12.4 EXEMPLE DE SESSION DE MISE AU POINT FORTRAN

Les paragraphes 12.4.1 à 12.4.3 illustrent un exemple de session de mise au pointFORTRAN. Le programme origine est listé tel qu'il apparaît dans le compte rendu decompilation, (en 12.4.1), avec les commandes PCF utilisées (en 12.4.2) et les résultatsde la session (en 12.4.3).

Les commandes utilisées sont les suivantes :

• une commande APPLY spécifiant à quelle procédure s'appliquent les commandes quisuivent. Elle peut être omise, si le programme ne comprend qu'une seule procédure,

• une commande TRACE avec option MAP (commande 1) demandant la générationd'une table de toutes les étiquettes avec leur nombre d'occurrences,

• une commande DUMP (commande 2) demandant l'affichage de la variable R lorsquele traitement atteint l'étiquette 10,

• une commande DUMP (commande 3) demandant l'affichage de la variable C lorsquele traitement atteint la ligne 130,

• une commande CHANGE (commande 4) demandant la modification de la valeur de lavariable Q lorsque le traitement atteint l'étiquette 10. La nouvelle valeur affectée à Qest 10.0,

• une commande DUMP (commande 5) demandant l'affichage des variables C, R, Q etCH lorsque le traitement atteint la ligne 140,

• une commande DUMP (commande 6) demandant l'affichage d'un sous-ensemble dutableau INT lorsque le traitement atteint la ligne éditée juste après la ligne 200,

• enfin, une commande DUMP (commande 7) demandant l'affichage de la variable Clorsque le traitement atteint la deuxième instruction de la ligne 120.

Page 125: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes FORTRAN

47 F2 15UP Rev02 12-5

12.4.1 Exemple de liste de programme FORTRAN

+--------------------------------------------------------------+| || 1 10 PROGRAM MYPROC || 2 20 LOGICAL L || 3 30 REAL R || 4 40 QUADRUPLE PRECISION Q || 5 50 COMPLEX DOUBLE PRECISION C || 6 60 CHARACTER*16 CH || 7 70 DIMENSION INT(2,2,2) || 8 80 L=.TRUE. || 9 90 R=1.7 || 10 100 Q=R || 11 110 10 C=(1.62D4,18.4D-5) || 12 120 C=C+C; C=C+C || 13 130 CH="THIS IS A STRING" || 14 140 GOTO 13 || 15 150 C NEVER REACHED || 16 160 11 C=C-C || 17 170 13 DO 14 I=1,2 || 18 180 DO 14 J=1,2 || 19 190 DO 14 K=1,2 || 20 200 14 INT(I,J,K)=I+2*J+4*K || 21 . 0 STOP || 22 220 END || |+--------------------------------------------------------------+

Page 126: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

12-6 47 F2 15UP Rev02

12.4.2 Exemple de commandes PCF de mise au point d'un programmeFORTRAN

+--------------------------------------------------------------+| || APPLY IN MYPROC; || 1 TRACE MAP AT ALL-LABELS; || 2 DUMP R AT 10; || 3 DUMP C AT LINE 130; || 4 CHANGE Q = 10.0 AT 10; || 5 DUMP C, R, Q, CH AT LN 140; || 6 DUMP INT(1,1:2,2) AT LINE 200.0; || 7 DUMP C AT LINE 120*2; || |+--------------------------------------------------------------+

Les résultats (voir en 12.4.3) apparaissent dans l'ordre d'exécution des commandes, soit:

commande 2commande 4commande 7commande 3commande 5commande 6

et, en dernier, ceux de la commande 1 du fait de sa nature (commande POST-MORTEM), les statistiques d'utilisation des paragraphes et sections ne pouvant s'afficherqu'après la fin du programme.

Chaque fois qu'un point d'intervention est atteint, l'étiquette (s'il y en a une) s'afficheavec le numéro de ligne correspondant. Puis viennent les numéros des commandesavec le verbe et les résultats et/ou opérations effectuées.

Page 127: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes FORTRAN

47 F2 15UP Rev02 12-7

12.4.3 Exemple de compte rendu d'exécution de PCF pour un programmeFORTRAN

*********************************************************"*****************************************************"****************************** GCOS7 ******** P C F ( D E B U G ) *******" VERSION: 90.00 DATED: SEP 01, 1989 *********DOC_FORTRAN_RES**********************************************************************************************************************(((PCF AT MYPROC(-8) LINE 80 ILN 8 IN MYPROC...PCF AT BEGINNING OF MAIN PROCEDURE....100 APPLY IN MYPROC;... * APPLY IN MYPROC, COMPILE UNIT FORTRAN74.22, CREATED ON 17:29:24... MAR 29, 1991, DATA BASE P7 8.10.0068 ....1 1 TRACE MAP AT ALL-LABELS;...2 2 DUMP R AT 10;...3 3 DUMP C AT LINE 130;...4 4 CHANGE Q=10.0 AT 10;...5 5 DUMP C, R, Q, CH AT LN 140;...6 6 DUMP INT(1,1:2,2) AT LINE 200.0...7 7 DUMP C AT LINE 120*2;)))(((PCF AT 10 LINE 110 ILN 11 IN MYPROC...2 DUMP... R +1.699999E+ 0...4 CHANGE... Q +1.000000000000000000000000000000000Q+ 1... (+1.69999900926513671875000000000000Q+ 0 ))))(((PCF AT * LINE 120*2 ILN 12 IN MYPROC...7 DUMP... C (+3.2400000000000000D+ 4 ,+3.679999999999999D- 4 ))))(((PCF AT * LINE 130 ILN 13 IN MYPROC...3 DUMP... C (+6.4800000000000000D+ 4 ,+7.359999999999990D- 4 ))))(((PCF AT * LINE 140 IDN 14 IN MYPROC...5 DUMP... C (+6.4800000000000000D+ 4 ,+7.359999999999998D- 4 )... R +1.699999E+ 0... Q +1.000000000000000000000000000000000Q+ 1... CH "THIS IS A STRING")))(((PCF AT * LINE 200.0 ILN 21 IN MYPROC...6 DUMP... INT(1,1,2)... 11... INT(1,2,2)... 13)))@((PCF AT POST MORTEM....1 TRACE... 1 10 LINE 110 ILN 11 IN MYPROC... 0 11 LINE 160 ILN 16 IN MYPROC... 1 13 LINE 170 ILN 17 IN MYPROC... 8 14 LINE 200 ILN 20 IN MYPROC)))

Page 128: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

12-8 47 F2 15UP Rev02

Page 129: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 13-1

13. Mise au point de programmes GPL

Ce chapitre traite exclusivement des caractéristiques de PCF relatives à la mise au pointde programmes GPL.

13.1 TYPES DE VARIABLES

Les différents types de variables GPL sont :

• entiers demi-mot (FIXED BIN (15))

• entiers mot (FIXED BIN (31))

• chaînes de caractères (CHARACTER (n), CHAR(n))

• chaînes de bits (BIT(n))

• pointeurs (POINTER, PTR)

• entrées (ENTRY)

• valeurs binaires logiques (LOGBIN(n))

Les variables peuvent être des variables scalaires simples ou des agrégatscorrespondant à des structures plus complexes. Les agrégats peuvent contenir desdéfinitions de tableaux. Les tableaux sont unidimensionnels et peuvent être à limitesvariables (définies par une expression calculée à l'entrée dans le bloc où le tableau estdéclaré). L'utilisateur peut définir les limites supérieures et inférieures d'un tableau.

Il existe quatre modes d'affectation mémoire ou classes mémoire:

• statique avec champ d'application interne ou externe (STATIC, CONSTANT),• automatique (AUTOMATIC),• par paramètres (dans une instruction PROC),• basée (BASED).

Les noms utilisés dans les structures peuvent être qualifiés, afin d'éviter toute ambiguïté.Les noms qualifiés sont cités en PCF sous leur nom GPL, avec les mêmes règles dequalification.

Exemple :

ABC.DEF.GHI

Page 130: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

13-2 47 F2 15UP Rev02

PCF peut accéder à tous ces types de variables de forme symbolique en faisantsimplement référence au nom qu'elles portent dans le programme origine (voirconventions au chapitre 3).

13.2 CONSTANTES

Toutes les constantes GPL sont autorisées en PCF pour modifier la valeur d'une variable(CHANGE) ou effectuer des comparaisons (clauses IF).

Exemples :

• entiers sous forme de nombres en décimal éventuellement signés :

10 -12 +30

• chaînes de caractères sous forme de série de caractères entre guillemets :

"CECI EST UN LITTERAL" """BONJOUR"""

• chaînes de bits sous forme de série de bits entre guillemets, suivie de la lettre B, oubien de série de caractères hexadécimaux entre guillemets, suivie de la lettre X ou H :

"01010011"B "FFF"X "F2"H

En plus de ces constantes, il existe une fonction PCF permettant de définir desconstantes pointeur ou entrée. La syntaxe d'une constante de ce type est la suivante :

{ [/DIRECT] } {[/R0]} { [/DT] } {[/R1]} { } { } /stn.ste.sra { [/INDIRECT] } {[/R2]} { [/IT] } {[/R3]}

DIRECT ou DT indique un pointeur direct, INDIRECT ou IT un pointeur indirect. Lepointeur implicite est DIRECT. R0, R1, R2 ou R3 sont des indicateurs d'anneaux,l'indicateur implicite étant R3.

stn, ste et sra indiquent une adresse segmentée de mémoire virtuelle.

Exemples :

/8.12.3FF/R2/8.16.42/IT/9.7.372/DT/R3/8.12.0

13.3 NOTION DE BLOC

Un bloc commence par une instruction PROC ou par une instruction BEGIN et setermine par une instruction END. Les noms doivent être uniques à l'intérieur d'un bloc.Toutefois, dans un programme GPL, même s'ils sont correctement qualifiés, ils peuvent

Page 131: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes GPL

47 F2 15UP Rev02 13-3

ne pas être uniques dans un programme. Par conséquent, PCF a besoin d'informationscomplémentaires sur les variables citées dans une série de commandes. Un paramètrede la commande APPLY permet de qualifier le nom de procédure à l'aide du nom d'unou plusieurs blocs :

nom-procédure . nom-bloc [. nom-bloc]...

Lorsque les blocs de début (BEGIN) ne portent pas d'étiquette, le numéro de la lignecontenant l'instruction BEGIN voulue peut remplacer la série de noms de blocqualificateurs.

Exemples :

APPLY IN MAIN.INNER.INNERMOST;

APPLY IN MAIN.LINE 1234;

Toutes les étiquettes ou variables citées dans une commande s'appliquant à un bloc sontd'abord recherchées à l'intérieur du champ d'application de ce bloc (champ d'applicationétant pris dans son sens GPL normal). En cas d'échec, elles sont recherchées dans lesautres blocs du programme. La recherche échoue lorsqu'aucune variable n'a été trouvéeou que le résultat est douteux. Ces cas sont signalés par des messages d'erreur oud'avertissement.

Toutes les commandes s'appliquant à un bloc peuvent uniquement faire référence à desnoms d'étiquettes ou de variables dont le champ inclut ce bloc. Toute tentative pour faireréférence à une variable dont le champ ne couvre pas le bloc indiqué dans la commandeAPPLY donne lieu à un diagnostic, comme si la variable était non définie ou inconnue.

Page 132: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

13-4 47 F2 15UP Rev02

13.4 REFERENCE AUX INSTRUCTIONS

Les instructions GPL peuvent être désignées par:

• une étiquette, ou

• un numéro de ligne

Les noms d'étiquette sont une combinaison de lettres, chiffres et caractères soulignés. Ilssont désignés sous cette forme en PCF.

Exemple :

DUMP P.X(2) AT L1,L2;

demande l'affichage du second élément de P.X chaque fois que le programme atteint L1ou L2.

Les numéros de lignes internes GPL figurent en deuxième colonne de la liste decompilation (voir en 13.6.2) et les numéros de ligne externes en première colonne (voiren 13.6.2). Les numéros de lignes externes peuvent avoir une des formes suivantes:

• les numéros de lignes d'origine apparaissent sous forme de nombres en décimal etpeuvent être cités tels quels.

• les lignes ayant été insérées par l'éditeur de textes sont précédées d'un point. Ellesdoivent être désignées comme suit:

n1.n2

n1 est le numéro de la ligne d'origine précédant immédiatement celle à laquelle il estfait référence et n2 le numéro de la ligne désignée (précédée d'un point dans la liste).

Page 133: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes GPL

47 F2 15UP Rev02 13-5

13.5 VARIABLES BASEES

En GPL, il existe le concept de variables "basées". Une déclaration de variable basée neréserve pas de place à proprement parler, mais définit plus exactement une structure dedonnées pouvant être implantées à diverses adresses mémoire. L'association d'uneadresse mémoire à une variable basée est effectuée au moyen d'un pointeur. Pour PCF,il existe deux types de variables basées :

• celles auxquelles une variable pointeur est explicitement associée lors de ladéclaration :

DCL PQ BASED(P)...

• celles auxquelles aucune variable pointeur n'est explicitement associée ou cellesassociées à une expression pointeur:

DCL Z BASED...

DCL W BASED (ADDR(PX))...

Il est possible de citer le premier type de variable basée sans pointeur explicite (PQsignifiant P -> PQ) ou avec pointeur (Q -> PQ ou H -> HQ -> PQ). Pour le second type,toutes les références PCF doivent avoir un pointeur explicite (P -> Z, P -> Q -> W sontdes références correctes, tandis que Z ou W ne le sont pas). PCF est en effet en mesurede mémoriser une base implicite associée à une variable basée, à condition que cettebase soit une variable GPL simple. Il est également possible de faire référence à unevariable non basée par l'intermédiaire d'une variable ou d'une constante pointeur enprenant soin, si nécessaire, de protéger le nom de la variable pour éviter toute confusionavec un déplacement en hexadécimal.

Exemples :

DCL ABC CHAR(10);

DCL Q PTR;

DCL STR FB15;

en PCF:

Q -> STR

/18.10.2A4 -> 'ABC'

Page 134: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

13-6 47 F2 15UP Rev02

13.6 EXEMPLE DE SESSION DE MISE AU POINT

Les paragraphes 13.6.1 à 13.6.3 illustrent un exemple de session de mise au point GPL.Le programme origine est listé tel qu'il apparaît sur le compte rendu de compilation(figure 13.6.2), avec les commandes PCF utilisées (figure 13.6.1) et les résultats de lasession (figure 13.6.3).

Les commandes utilisées sont les suivantes :

• une première commande APPLY spécifiant que les commandes qui suivents'appliquent à la procédure P,

• une commande DUMP (commande 1) demandant l'affichage de la variable CH100lorsque le traitement atteint la ligne 130,

• une commande DUMP (commande 2) demandant l'affichage de la variable I lorsquele traitement atteint l'étiquette L,

• une seconde commande APPLY spécifiant que les commandes qui suivents'appliquent au bloc portant l'étiquette R (procédure interne) de la procédure P,

• une commande DUMP (commande 3) demandant l'affichage de la variable I lorsquele traitement atteint la ligne 270,

• une commande CHANGE (commande 4) demandant l'affectation d'une nouvellevaleur au premier élément du tableau caractères T lorsque le traitement atteint laligne 270.

13.6.1 Exemple de commandes PCF de mise au point d'un programme GPL

+--------------------------------------------------------------+| || APPLY IN P; || 1 DUMP CH100 AT LINE 130; || 2 DUMP I AT L; || APPLY IN P.R; || 3 DUMP I AT 270; || 4 CHANGE T(O)="*" AT LN 270; || |+--------------------------------------------------------------+

Les résultats (voir en 13.6.3) apparaissent dans l'ordre d'exécution des commandes, soit:

commande 2commande 1commande 3commande 4

Chaque fois qu'un point d'intervention est atteint, l'étiquette (s'il y en a une) est affichéeavec le numéro de ligne correspondant. Puis viennent les numéros des commandes,avec le verbe et les résultats, et/ou opérations effectuées.

Page 135: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes GPL

47 F2 15UP Rev02 13-7

13.6.2 Exemple de liste de programme GPL

+--------------------------------------------------------------+| || SOURCE || || 10 1 P: PROC; || 20 2 DCL' I FIXED BIN (15); || 30 3 I = 0; || 40 4 L:; || 50 5 DCL' T (0:10) CHAR (12); || 60 6 DCL' CH13 CHAR (13); || 70 7 DCL' CH10 CHAR (10); || 80 8 DCL' 1 S13, || 90 9 2 C CHAR (13); || 100 10 DCL' 1 S10, || 110 11 2 C CHAR (10); || 120 12 CH13 = " "; || 130 13 CH10 = " "; || .0000 14 S13.C = " "; || 150 15 S10.C = " "; || 160 16 CALL R (CH13, CH10, S13, S10); || 170 17 R: PROC (CH13, CH10, S13, S10); || 180 18 DCL' CH13 CHAR (13) ; || 190 19 DCL' CH10 CHAR (10); || 200 20 DCL' 1 S13, || 210 21 2 C CHAR (13); || 220 22 DCL' 1 S10, || 230 23 2 C CHAR (10); || 240 24 DO I = 0 TO 10; || 250 25 T (I) = " "; || 260 26 END; || 270 27 END; || 280 28 END; || |+--------------------------------------------------------------+

Page 136: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

13-8 47 F2 15UP Rev02

13.6.3 Exemple de compte rendu d'exécution de PCF pour un programmeGPL

***"****************************************************************************************************************************************** GCOS7 ******** P C F ( D E B U G ) ******** VERSION: 90.00 DATED: SEP 01, 1989 *********DOC_GPL_RES************************************************************"*************************************************************

(((PCF AT P LINE 10 ILN 1 IN P...PCF AT BEGINNING OF MAIN PROCEDURE....100 APPLY IN P;... * APPLY IN P , COMPILE UNIT GPL81.0, CREATED ON 18:04:48... MAR 29, 1991, DATA BASE P7 8.10.001D ....1 1 DUMP CH100 AT LINE 140;...2 2 DUMP I AT L;...100 APPLY IN P.R;... * APPLY IN P , COMPILE UNIT GPL81.0, CREATED ON 18:04:48... MAR 29, 1991, DATA BASE P7 8.10.001D ....4 4 DUMP I AT LN 270;...5 5 CHANGE T(0)="*" AT LN 270;...6 6 TRACE MAP AT ALL-LABELS;)))(((PCF AT L LINE 120 ILN 12 IN P...2 DUMP... I 0)))(((PCF AT * LINE 140 ILN 14 IN P...1 DUMP...1 CH100 "")))(((PCF AT * LINE 270 ILN 27 IN P...4 DUMP... I 11...5 CHANGE... T(0) 0 "* " ( " " )... 20 " " ( " " )... 40 ===============================================)))(((PCF AT POST MORTEM....6 TRACE... 1 L LINE 120 ILN 12 IN P... 1 R LINE 240 ILN 24 IN P)))

Page 137: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 14-1

14. Mise au point en adressage effectif

La méthode de mise au point en adressage effectif s'utilise pour des programmesCOBOL, FORTRAN, GPL et C compilés sans l'option DEBUG. Dans ce cas, aucunetable de références origine n'ayant été générée dans le programme résultant, l'utilisateurdoit spécifier les adresses réelles des éléments des clauses "Quoi" et "Quand" descommandes PCF. Pour ce faire, il doit avoir conservé les listes suivantes :

• liste de compilation des programmes, chacun devant avoir été compilé avec l'optionMAP,

• compte rendu d'édition de liens du programme.

Ce chapitre explique comment utiliser ces deux types de listes pour obtenir l'adresseréelle des objets du programme origine et fournit des informations supplémentaires surle format et la signification des adresses effectives.

14.1 RELEVES D'IMPLANTATION DES OBJETS DE PROGRAMME

L'option MAP permet d'obtenir les relevés d'implantation des objets du programmeorigine lors de la compilation. Ces relevés varient légèrement d'un langage à un autre etsont décrits plus loin en détail. On distingue :

• le relevé de données fournissant l'adresse des variables, et• le relevé d'instructions fournissant l'adresse des instructions origine.

Les adresses peuvent être spécifiées de deux façons :

• par des références de données PCF correctes en adressage effectif,• en utilisant la notation "ISN:offset".

Page 138: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

14-2 47 F2 15UP Rev02

14.1.1 Relevé de données et d'instructions COBOL

COBOL-85 01.68-10 X219.8 DUPONT COBL COBL--V6 15.11.24 MAR 29, 1991 PAGE 4

PROCCOB PROGRAM-NAME 10 NOREF SEPARATELY-COMPILED

01 STRUC 1:000058 GROUP X(33) 90 NOREF02 PRICE(+ 0) 1:000058 DISPLAY 9(6)V99 100 190.0* 210+*02 COST(+ 8) 1:000060 DISPLAY S9(6)V99 110 170.0.10* 190.0 210*02 RATE(+ 16) 1:000060 COMP-3 9(5)V99 120 190..10* 190.0 22002 NEWPRICE(+ 20) 1:00006C DISPLAY NUM-EDT(9) 130 210*02 POURC(+ 29) 1:000075 COMP-3 S9(5)V99 140 220*

01 TITRE 1:000079 DISPLAY X(8) 150 170.0.20*

DEBUT PARAGRAPH-NAME 170 NOREF FIN PARAGRAPH-NAME 230 NOREF3:00034 170.0.10 3:0003C .0.20 3:00044 190..10 3:00056 .0 3:00086 2103:0008E 210 3:00096 210 3:000A6 220 3:000CE 240

14.1.2 Relevé de données et d'instructions FORTRAN

FOR77 74.22 X22.5 IOF DUPONT FORT FORT--V6 17.30.03 MAR 29, 1991 PAGE 3

10 ISN 0.94 LITERAL_CST LABEL 1111 ISN 0.D0 LITERAL_CST LABEL 1613 ISN 0.D8 LITERAL_CST LABEL 14 1714 ISN 0.FA LITERAL_CST LABEL 17 18 19 20C ?BR1.1C NO_SAVE VARIABLE(16) COMPLEX*16 5 11 12 12 12 12 12 12 16 16 16CH ?BR1.2C NO_SAVE VARIABLE(16) CHARACTER 6 13I ?BR1.5C NO_SAVE VARIABLE(4) ?INTEGER 17 20 20INT ?BR1.3C NO_SAVE ARRAY(32) ?INTEGER 7 20J ?BR1.60 NO_SAVE VARIABLE(4) ?INTEGER 18 20 20K ?BR1.64 NO_SAVE VARIABLE(4) ?INTEGER 18 20 20L ?BR1.4 NO_SAVE VARIABLE(4) LOGICAL 2 8MYPROC EXT_ENTRY PROGRAM 1Q ?BR1.C NO_SAVE VARIABDE(16) QPLE PREC 4 10R ?BR1.8 NO_SAVE VARIABLE(4) REAL 3 9 10

ISN: 0 8278 9:7E 10:86 11:94 12:9C 12:B0 13:C4 14:CC 16:D0 17:D8 18:E2 19:EE 20:FA 21:150

ISN: 0 78:8 7E:9 86:10 94:11 9C:12 B0:12 C4:13 CC:14 D0:16 D8:17 E2:18 EE:19 FA:20 150:21

Page 139: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point en adressage effectif

47 F2 15UP Rev02 14-3

14.1.3 Relevé de données et d'instructions GPL

GPL 81.00 X28.3 IOF DUPONT GPL GPL--V6 13.31.12 MAR 29,.1991 PAGE 3

ISN: 0 10:70 30:96 120:9C 130:AA 140:B6 150:BE 160:C6 240:28 250:42 260:5A270:68 280:EA

ISN: 0 28:240 42:250 5A:260 68:270 70:10 96:30 9C:120 AA:130 B6:140 BE:150 C6:160 EA:280

P ?BR7.0 PROCEDURE RECURSIVE EXT DCL: 10 NO REF I ?BR1.F8 FIXED BIN(15) AUTO DCL: 20 30m 240m 250 L LABEL DCL: 40 NO REF T ?BR1.4->0 ARRAY CHAR(120) AUTO DCL: 50 250m CH1030 ?BR1.8->0 CHAR(1030) AUTO DCL: 60 120m 160r CH100 ?BR1.90 CHAR(100) AUTO DCL: 70 130m 160r1 S1030 ?BR1.C->0 STRUCTURE AUTO DCL: 80 160r2 C(S1030) ?BR1.C->0 CHAR(1030) AUTO DCL: 90 140m1 S100 ?BR1.28 STRUCTURE AUTO DCL: 100 160r2 C(S100) ?BR1.28 CHAR(100) AUTO DCL: 110 150m R ?BR2 PROCEDURE INT DCL: 170 160 CH1030 ?BR1.14->0 CHAR(1030) PARAM DCL: 180 NO REF CH100 ?BR1.18->0 CHAR(100) PARAM DCL: 190 NO REF1 S1030 ?BR1.1C->0 STRUCTURE PARAM DCL: 200 NO REF2 C(S1030) ?BR1.1C->0 CHAR(1030) PARAM DCL: 210 NO REF1 S100 ?BR1.20->0 STRUCTURE PARAM DCL: 220 NO REF2 C(S100) ?BR1.20->0 CHAR(100) PARAM DCL: 230 NO REF

Page 140: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

14-4 47 F2 15UP Rev02

14.1.4 Relevé de données et d'instructions en C

C PROGRAMCLANG 40.01 X28.3 IOF DUPONT STATEMENT MAP

CL CL--V6 13.31.12 MAR 29,1991 CLANG 40.01 X28.3 IOF DUPONTPAGE 2 CL CL--V6 13.31.12 MAR 29,1991 PAGE 3 1 main () 2 { ISN: 0 3 2:28 20:3C 21:44 22:4A 23:50 4 enum GREC {alpha, beta, 5 gamma}; ISN: 0 6 union 28:2 3C:20 44:21 4A:22 50:23 7 { 8 struct alpha enum value enum GREC 9 { 0 4 NO REF10 enum GREC x; alpha enum value enum GREC11 int size; 0 4 NO REF12 } I; alpha enum value enum GREC13 struct 0 4 NO REF14 { alpha enum value enum GREC15 enum GREC y; 0 4 NO REF16 float size; beta enum value enum GREC17 } F; 1 4 NO REF18 } U_grec , *p; beta enum value enum GREC19 1 4 NG REF20 p = &U_grec; beta enum value enum GREC21 U_grec.I.x = 2; 1 4 NO REF22 U_grec.I.size = 3; beta enum value enum GREC23 } 1 4 NO REF gamma enum value enum GREC 2 4 NO REF gamma enum value enum GREC 2 4 NO REF gamma enum value enum GREC 2 4 NO REF gamma enum value enum GREC 2 4 NO REF 1 p ?BR1.10 union * auto 4 18 REF: 20* 3 size(*) ***** not allocated int based 4 11 NO REF 3 size(U_grec) ?BR1.1C int auto 4 11 REF: 22* 3 size(U_grec) ?BR1.1C float auto 4 16 NG REF 3 size(*) ***** not allocated float based 4 16 NO REF 3 x(U_grec) ?BR1.18 enum GREC auto 4 10 REF: 21* 3 x(*) ***** not allocated enum GREC based 4 10 NO REF 3 y(*) ***** not allocated enum GREC based 4 15 NO REF 3 y(U_grec) ?BR1.18 enum GREC auto 4 15 NO REF CEXAMPLE ?BR7.0 int () extern 1 REF: 1 2 F(*) ***** not allocated struct based 8 17 NO REF 2 F(U_grec) ?BR1.18 struct autg 8 17 NO REF GREC union tag 4

Page 141: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point en adressage effectif

47 F2 15UP Rev02 14-5

REF: 10 15 2 I(U_grec) ?BR1.18 struct auto 8 12 REF: 21* 22* 2 I(*) ***** not allocated struct based 8 12 NO REF 1 U_grec ?BR1.18 union auto 8 18

En adressage effectif, une référence de donnée indique l'adresse début de la donnée enmémoire virtuelle. Son type et sa longueur sont définis par le format spécifié juste aprèsl'adresse, précédé du symbole numéro (#). Les codes applicables pour la définition desformats sont répertoriés à l'annexe A.

Une adresse peut prendre plusieurs formes (voir ci-dessous et le tableau 14-1.)

• Une adresse mémoire désigne une position dont l'adresse est connue:

?8.13.4F 12.FF 73F

• Une adresse indirecte indique un ou plusieurs niveaux d'adressage indirect. Sonformat est le suivant:

position -> déplacement [-> déplacement]...

déplacement est un nombre hexadécimal de 6 caractères maximum.

Page 142: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

14-6 47 F2 15UP Rev02

Exemple :

?8.21.3F

7

F

donnée adressée

?8.21.3F -> 7 -> F

Figure 14-1. Adressage indirect

• Il est également possible d'adresser des registres. Ils sont identifiés par le caractère ?suivi d'un nom mnémonique. La syntaxe est la suivante:

?GRi ou ?GR(i) avec i = 0 à 15 pour des registres généraux

?BRi ou ?BR(i) avec i = 0 à 7 pour les registres de base

?XRi ou ?XR(i) avec i = 0 à 7 pour les registres d'index

?SRi ou ?SR(i) avec i = 0 à 3 pour les registres scientifiques

?ST pour les registres d'état

?TR pour le registre haut de pile

?IC pour le registre compteur d'instruction

• Il est aussi possible de citer des éléments de pile en utilisant la notation ?STKi ou?STK(i), i = 0 désignant l'élément de pile en cours, i = 1, celui qui précède, et ainsi desuite. ?STKi n'est autorisé que dans la commande DUMP.

• Certaines zones d'éléments de pile peuvent être citées, mais uniquement dans lacommande DUMP. La syntaxe et la signification des références de zones de l'élémentde pile en cours sont les suivantes :

?SAM pour le masque de zone de sauvegarde (Saving Area Mask)

?PSA pour le pointeur sur le masque de zone de sauvegarde(Pointer to Saving Area mask)

?PTV pour la valeur haut de pile précédente (Previous Top ofstack Value)

?NBP pour le nombre d'octets de l'espace paramètres (Number ofBytes in Parameter space)

Page 143: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point en adressage effectif

47 F2 15UP Rev02 14-7

?LOC pour la zone de manoeuvre (LOCal variables)

?PAR pour le contenu de l'espace paramètres (PARameter space)

?COM pour la zone de communication (COMmunications)

?SAV pour la zone de sauvegarde du registre (register SAVingarea)

• l'adressage indirect par l'intermédiaire d'un registre peut également être spécifié sousla forme:

{ ?BRi } { ?BR(i) } .déplacement { ?IC }

ou

{ ?BRi } [.déplacement] -> déplacement { ?BR(i) } [-> déplacement]... { ?IC }

déplacement est un nombre hexadécimal de 6 caractères maximum.

Page 144: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

14-8 47 F2 15UP Rev02

Exemples :

?BR5.6F -> F -> 42

?BR3

3F

donnée adressée

?BR5

6F

F

42

donnée adressée

?BR0 -> 2F

?BR0

2F

donnée adressée

?BR3.3F

Figure 14-2. Adressage indirect par registre

Page 145: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point en adressage effectif

47 F2 15UP Rev02 14-9

• il est possible d'adresser une plage de registres de la façon suivante :

{ TO } ? mnémonique-registre (i { } j), avec i<j { : }

Exemples :

?BR(3 TO 7) désigne tous les registres de base de BR3 à BR7.

?XR(2:3) désigne les registres d'index XR2 et XR3.

• une plage d'éléments de pile peut être adressée de la façon suivante:

{ TO } ? STK (i { } j), avec i<j { : }

Tableau 14-1. Références de données en adressage effectif

REFERENCE DEDONNEE FORM E EXEM PLES

position m é m oire

adresse ind irec te

reg istres

é lém ents de p ile

p lage de reg istres

Zo nes d e l 'é lém e n tde p ile en cours

adressage ind irec tpar reg istre

p lage d 'é lém entsde p ile

? [[stn. ] ste .] sra

position -> dé p l.[-> d ép la .] ...

?ST K i ? ST K (i)

T O?m né m onique-reg [i j)] :

T O?ST K (i j) :

?BR i?BR (i) [.dép l] [-> dép l[-> dépl ]...]? IC

?SA M ?P SA ? PT V ? NB P?LO C ?PAR ?C O M ?SAV

?G Ri ?G R (i) ? BR i ?B R (i)?XR i ? X R (i) ?S R i ? SR (i)?ST ?T R ?IC

?8.1 2 .3 F?12.3 F?3F

?8.1 2 .3 F->3B?21.4 F->F->22B

?BR 3?SR 0?T R

?STK 0?STK (1 )

?PSA?N BP

?BR 3 .3 F?BR 5 -> 123D?BR 0 .3 F->12A

?BR (1:7)?ST?XR (0:7)

?STK (0 :99 )?STK (1 TO 3 )

Page 146: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

14-10 47 F2 15UP Rev02

14.2 NOTATION "ISN:OFFSET"

ISN est un numéro de segment interne (Internal Segment Number). Il s'agit d'un nombreen décimal identifiant un segment généré par le compilateur. Ce dernier ne peut pasaffecter de numéros de segments réels; ce n'est pas son rôle. C'est l'éditeur de liens quiétablit la correspondance entre numéros de segment internes et segments réels. Cettecorrespondance apparaît sur le compte rendu d'édition de liens. Il est ainsi possible dereconstituer l'adresse des références données sous la forme "ISN:offset", comme lemontre l'exemple qui suit.

Si un segment est lié, comme suit :

Unité compilée Offset de segmentsMY_CU1/0 B.10.0MY_CU2/0 B.11.0MY_CU1/1 B.11.1000

D: A IN MY_CU1/0C: P AT :0.3F4

La pause se fait sur B.10.3F4.

D: A IN MY_CU1/1C: P AT :0.4F0

La pause se fait sur B.11.14C0.

Page 147: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point en adressage effectif

47 F2 15UP Rev02 14-11

14.3 EXEMPLE DE MISE AU POINT EN ADRESSAGE EFFECTIF

Supposons que l'utilisateur ait à mettre au point l'exemple du programme COBOL duchapitre 11 en adressage effectif. Le paragraphe 11.4.2 représente la liste duprogramme origine. L'utilisateur veut afficher la variable RATE à la ligne 210 (numéro deligne interne du compilateur: 24). L'expression de cette commande sous formesymbolique est:

DUMP RATE AT LINE 210;

Il faut donc trouver les adresses de RATE et de la ligne 210 (ILN 24). Pour ce faire, onutilise les relevés de données et d'instructions (voir 14.1.1) qui indiquent:

RATE ISN1 OFFSET 68LINE 210 ISN 3 OFFSET 76

Le paragraphe 14.3.1 fournit un compte rendu d'édition de liens de ce programme.

14.3.1 Compte rendu d'édition de liens

10 SEGMENT LIST11 SEG. IN CU.ISN TYPE SH RF RD WR EX WP EP G S SIZE MAXSIZE CONT.P.12 8.10 PROCCOB.0 ..L 3 3 3 3 3 144 013 8.11 PROCCOB.1 .D. 3 3 3 3 3 WP 144 014 8.12 PROCCOB.3 C.. 3 3 3 3 3 EP 240 015 8.13 H_CBL_DRTP .D. 3 3 3 3 3 WP 608 8192 016 .....17 9. 0 PGCR CD. 2 3 3 0 3 WP EP 457618 9. 4 TERMINATION .D. 2 3 3 0 0 WP S 9619 9. A PROCCOB.2 .D. 2 3 3 3 107220 9. E SEMPH. POOL .D. 2 3 3 1 1 WP S 3360

ISN 1 de PROCCOB correspond au segment 8.11 et ISN 3 au segment 8.12. Lesadresses respectives des éléments recherchés sont donc:

RATE ?8.11.68LINE 210 ?8.12.76

Il est nécessaire de spécifier un format pour l'affichage de la variable RATE. RATE estde type COMP-1, le format approprié est donc #FB31 (voir annexe A). La commandePCF correcte est donc:

DUMP ?8.11.68 #FB31 AT ?8.12.76;

La mise au point en adressage effectif des programmes FORTRAN, GPL et C est un peuplus simple. Les adresses des variables listées sur le relevé de données sontdirectement exploitables par PCF. Le compte rendu d'édition des liens n'est doncnécessaire que pour déterminer l'adresse effective du point d'intervention. La méthodeest la même que celle décrite ci-dessus.

Page 148: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

14-12 47 F2 15UP Rev02

Page 149: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 15-1

15. Mise au point en adressagesemi-symbolique

La méthode de mise au point en adressage semi-symbolique s'utilise pour desprogrammes COBOL, FORTRAN, GPL ou C dont l'édition de liens a été effectuée avecl'option SYMBMAP=YES. En général, ce mode d'adressage est accompagnéd'adressage effectif, mais les seules listes nécessaires pour les deux sont les listes decompilation avec l'option MAP.

Ce chapitre montre comment mettre au point un programme en adressage semi-symbolique. Rappelons que certaines données ne peuvent toutefois être citées qu'enmode d'adressage effectif.

15.1 RELEVES D'IMPLANTATION DES OBJETS DE PROGRAMMES

L'option MAP permet d'obtenir les relevés d'implantation des objets du programmeorigine lors de la compilation. Ces relevés varient légèrement d'un langage à un autre etsont décrits plus loin en détail. On distingue:

• le relevé de données fournissant l'adresse des variables, et

• le relevé d'instructions fournissant l'adresse des instructions origine.

Les adresses peuvent être spécifiées de deux façons:

• par des références de données PCF correctes en adressage effectif, ou

• en utilisant la notation "ISN:offset".

Ces deux formes sont décrites en détail plus loin dans ce chapitre.

Page 150: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

15-2 47 F2 15UP Rev02

15.2 REFERENCE DE DONNEE EN ADRESSAGE SEMI-SYMBOLIQUE

Il y a deux méthodes de désignation des données en adressage semi-symbolique:

• l'adressage direct par ISN et offset, ou

• par nom symbolique, dans le cas de données externes.

15.2.1 Adressage semi-symbolique direct (isn:offset)

En mode d'adressage semi-symbolique, la commande APPLY reste valable. Elle permetd'identifier la procédure à laquelle s'appliquent les commandes PCF. L'utilisateur peutensuite désigner du code ou des données qu'elle contient, par isn et offset. Le type et lalongueur de la donnée sont définis par une chaîne de caractères codée, précédée dusymbole numéro (#), juste après la référence. Tous les formats autorisés, avec leursignification, sont répertoriés à l'annexe B.

Exemple :

APPLY IN MAPROC;

DUMP: 0.AA#C8

CHANGE: 1.18#FB15 = 10;

15.2.2 Noms symboliques de données externes

Certaines données sont déclarées comme données externes. Leur adresse estseulement fixée à l'édition de liens. Si l'option SYMBMAP=YES a été spécifiée, l'éditeurde liens conserve le nom symbolique de cette donnée externe avec le code duprogramme. L'adresse peut être indiquée par le nom symbolique qu'elle porte dans leprogramme origine, précédé du caractère "@". Ce format est précédé du symbole "#" :

@NOM#C12

Il est possible de spécifier un déplacement en hexadécimal par rapport au début de ladonnée externe, juste après le nom symbolique, les deux séparés par un point ".".

Exemple :

@EXT_VAR.B6#FB31

Page 151: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point en adressage semi-symbolique

47 F2 15UP Rev02 15-3

15.2.2.1 Relevé de données et d'instructions COBOL

COBOL 85 01.68-10 X219.8 IOF DUPONT COBL COBL--V6 15:11:24 MAR 29, 1991 PAGE4

PROCCOB PROGRAM-NAME 10 NOREF SEPARATELY-COMPILED

01 STRUC 1:000058 GROUP X(33) 90 NOREF02 PRICE(+0) 1:000058 DISPLAY 9(6)V99 100 190.0* 210+*02 COST(+8) 1:000060 DISPLAY S9(6)V99 110 170.0.10* 190.0 210*02 RATE(+16) 1:000068 COMP-3 9(5)V99 120 190..10* 190.0 22002 NEWPRICE(+20) 1:00006C DISPLAY NUM-EDT(9) 130 210*02 POURC(+29) 1:000075 COMP-3 S9(5)V99 140 220*

01 TITRE 1:000079 DISPLAY X(8) 150 170.0.20*

DEBUT PARAGRAPH-NAME 170 NOREF FIN PARAGRAPH-NAME 230 NOREF3:00034 170.0.10 3:0003C .0.20 3:00044 190..10 3:00056 .0 3:00086 2103:0008E 210 3:00096 210 3:000A6 220 3:000CE 240

15.2.2.2 Relevé de données et d'instructions FORTRAN

FOR77 74.22 X22.5 IOF DUPONT FORT FORT--V6 17.30.03 MAR 29, 1991 PAGE 3

10 ISN 0.94 LITERAL_CST LABEL 1111 ISN 0.D0 LITERAL_CST LABEL 1613 ISF 0.D8 LITERAL_CST LABEL 14 1714 ISN 0.FA LITERAL_CST LABEL 17 18 19 20C ?BR1.1C NO_SAVE VARIABLE(16) COMPLEX*16 5 11 12 12 12 12 12 12 16 16 16CH ?BR1.2C NO_SAVE VARIABLE(16) CHARACTER 6 13I ?BR1.5C NO_SAVE VARIABLE(4) ?INTEGER 17 20 20INT ?BR1.3C NO_SAVE ARRAY(32) ?INTEGER 7 20J ?BR1.60 NO_SAVE VARIABLE(4) ?INTEGER 18 20 20K ?BR1.64 NO_SAVE VARIABLE(4) ?INTEGER 18 20 20L ?BR1.4 NO_SAVE VARIABLE(4) LOGICAL 2 8MYPROC EXT_ENTRY PROGRAM 1Q ?BR1.C NO_SAVE VARIABLE(16) QPLE PREC 4 10R ?BR1.8 NO_SAVE VARIABLE(4) REAL 3 9 10

ISN: 0 8:78 9:7E 10:86 11:94 12:9C 12:B0 13:C4 14:CC 16:D0 17:D8 18:E2 19:EE 20:FA 21:150

ISN: 0 78:8 7E:9 86:10 94:11 9C:12 B0:12 C4:13 CC:14 D0:16 D8:17 E2:18 EE:19 FA:20 150:21

Page 152: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

15-4 47 F2 15UP Rev02

15.2.2.3 Relevé de données et d'instructions GPL

GPL 81.00 X28.3 IOF DUPONT GPL GPL--V6 13.31.12 MAR 29,.1991 PAGE 3

ISN: 0 10:70 30:96 120:9C 130:AA 140:B6 150:BE 160:C6 240:28 250:42 260:5A270:68 280:EA

ISN: 0 28:240 42:250 5A:260 68:270 70:10 96:30 9C:120 AA:130 B6:140 BE:150 C6:160 EA:280

P ?BR7.0 PROCEDURE RECURSIVE EXT DCL: 10 NO REF I ?BR1.F8 FIXED BIN(15) AUTO DCL: 20 30m 240m 250 L LABEL DCL: 40 NO REF T ?BR1.4->0 ARRAY CHAR(120) AUTO DCL: 50 250m CH1030 ?BR1.8->0 CHAR(1030) AUTO DCL: 60 120m 160r CH100 ?BR1.90 CHAR(100) AUTO DCL: 70 130m 160r1 S1030 ?BR1.C->0 STRUCTURE AUTO DCL2 80 160r2 C(S1030) ?BR1.C->0 CHAR(1030) AUTO DCL: 90 140m1 S100 ?BR1.28 STRUCTURE AUTO DCL: 100 160r2 C(S100) ?BR1.28 CHAR(100) AUTO DCL: 110 150m R ?BR2 PROCEDURE INT DCL: 170 160 CH1030 ?BR1.14->0 CHAR(1030) PARAM DCL: 180 NO REF CH100 ?BR1.18->0 CHAR(100) PARAM DCL: 190 NO REF1 S1030 ?BR1.1C->0 STRUCTURE PARAM DCL: 200 NO REF2 C(S1030) ?BR1.1C->0 CHAR(1030) PARAM DCL: 210 NO REF1 S100 ?BR1.20->0 STRUCTURE PARAM DCL: 220 NO REF2 C(S100) ?BR1.20->0 CHAR(100) PARAM DCL: 230 NO REF

Page 153: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point en adressage semi-symbolique

47 F2 15UP Rev02 15-5

15.2.2.4 Exemple de mise au point en adressage semi-symbolique

+----------------------------------------------------------------+| ||(((PCF AT /8.12.0000 :3.0 IN PROCCOB ||...PCF AT BEGINNING OF MAIN PROCEDURE. ||...100 D: APPLY IN PROCCOB; ||... * APPLY IN PROCCOB, NO COMPILE UNIT MAP. ||...100 D: P AT :3.2A; ||...110 D: P AT :3.74; ||...120 D: GO; ||))) ||(((PCF AT /8.12.002A :3.2A IN PROCCOB ||...100 PAUSE ||...120 D: D :1.68#X6; ||... ?8.11.68 08100000 0000 ||...120 D: GO; ||))) ||(((PCF AT /8.12.0074 :3.74 IN PROCCOB ||...110 PAUSE ||...120 D: L; ||... CURRENT APPLY : PROCCOB $LM ||... 100 P AT :3.2A; ||... 110 P AT :3.74; ||...120 D: P AT POST_MORTEM; ||...130 D: GO; ||))) ||(((PCF AT POST MORTEM. ||...120 PAUSE ||...130 D: GO; ||))) || |+----------------------------------------------------------------+

Page 154: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

15-6 47 F2 15UP Rev02

15.2.2.5 Relevé de données et d'instructions en

CLANG 40.01 X28.3 IOF DUPONT CL CL--V6 13.31.12 MAR 29, 1991 PAGE 3

ISN: 0 2:28 20:3C 21:44 22:4A 23:50

ISN: 0 28:2 3C:20 44:21 4A:22 50:23

alpha efum value enum GREC 0 4 NO REF alpha enum value enum GREC 0 4 NO REF alp`a enum value enum GREC 0 4 NO REF alpha enum value enum GREC 0 4 NO REF beta enum value enum GREC 1 4 NO REF beta enum value enum GREC 1 4 NO REF beta enum value enum GREC 1 4 NO REF beta enum value enum GREC 1 4 NO REF gamma enum value enum GREC 2 4 NO REF gamma enum value enum GREC 2 4 NO REF gamma enum value enum GREC 2 4 NO REF gamma enum value enum GREC 2 4 NO REF1 p ?BR1.10 union * auto 4 18 REF: 20*3 size(*) ***** not allocated int based 4 11 NO REF3 size(U_grec) ?BR1.1C int auto 4 11 REF: 22*3 size(U_grec) ?BR1.1C float auto 4 16 NO REF3 size(*) ***** not allocated float based 4 16 NO REF3 x(U_grec) ?BR1.18 enum GREC auto 4 10 REF: 21*3 x(*) ***** not allgcated enum GREC based 4 10 NO REF3 y(*) ***** not allocated enum GREC based 4 15 NO REF3 y(U_grec) ?BR1.18 enum GREC auto 4 15 NO REF CEXAMPLE ?BR7.0 int () extern 1 REF: 12 F(*) ***** not allocated struct based 8 17 NO REF2 F(U_grec) ?BR1.18 struct auto 8 17 NO REF GREC union tag 4 REF: 10 152 I(U_grec) ?BR1.18 struct auto 8 12 REF: 21* 22*2 I(*) ***** not allocated struct based 8 12 NO REF1 U_grec ?BR1.18 union auto 8 18 REF: 20* 21* 22*

CLANG 40.01 X28.3 IOF DUPONT CL CL--V6 13.31.12 MAR 29, 1991 PAGE 2

1 main () 2 { 3 4 enum GREC {alpha, beta, gamma}; 5 6 union 7 { 8 struct 9 { 10 enum GREC x; 11 int size; 12 } I; 13 struct 14 { 15 enum GREC y; 16 float size; 17 } F; 18 } U_grec , *p; 19 20 p = &U_grec; 21 U_grec.I.x = 2; 22 U_grec.I.size = 3; 23 }

Page 155: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 16-1

16. Compte rendu d'exécution de PCFen traitement par lots

Ce chapitre décrit le compte rendu d'exécution de PCF en traitement par lots. Il sort engénéral sur imprimante par l'intermédiaire du mécanisme SYSOUT. Cependant, il peutêtre dirigé vers n'importe quel fichier séquentiel; il suffit d'affecter le fichier voulu au nomde fichier interne (nfi) H_DBPR.

Exemple :

ASSIGN H_DBPR, MONFIC, DVC = MT/T9/D800, MD = T99;

enregistre les sorties dans un fichier non catalogué sur bande 9 pistes, 800 bits/pouce.

De plus, la commande OUTPUT (voir Chapitre 6) permet à l'utilisateur de diriger unepartie du compte rendu d'exécution vers n'importe quel fichier séquentiel.

Le compte rendu d'exécution PCF se divise en deux parties :

• compte rendu de traduction, et

• compte rendu d'exécution proprement dit

La première partie est précédée de la bannière GCOS standard. Le contenu des deuxparties est analysé ci-après.

Page 156: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

16-2 47 F2 15UP Rev02

16.1 COMPTE RENDU DE TRADUCTION

Le compte rendu de traduction comporte deux types de zones:

• zone diagnostic• zone commande

La zone diagnostic contient tous les diagnostics relatifs à la commande imprimée au-dessus. Ils correspondent à différents degrés de gravité d'erreur indiqués par le nombred'astérisques et le texte en anglais. Les diagnostics peuvent indiquer le rejet de lacommande ou une action correctrice implicite.

La zone commande contient le texte de la commande tel qu'elle a été soumise parl'utilisateur. A l'affichage, les espaces non significatifs sont remplacés par un seulespace. Un exemple de compte rendu de traduction PCF figure en 16.1.1.

16.1.1 Compte rendu de traduction

****************************************************************************************************************************** GCOS7 ******** P C F ( D E B U G ) ******** VERSION: 90.00 DATED: SEP 01, 1989 *********DOC_COBOL_RES********************************************************************************************************

(((PCF AT PROCCOB(-32) LINE 10 ILN 1 IN PROCOB...PCF AT BEGINNING OF MAIN PROCEDURE....1 1 TRACE MAP AT ALL-LABELS;...2 2 DUMP COST IN STRUC AT ILN 20;...3 3 DUMP COST, RATE AT LINE 210*2;...4 4 CHANGE RATE=0.32 AT LINE 210;...5 5 DUMP TITRE AT FIN;

Remarque : La première ligne du compte rendu de traduction indique le pointd'intervention à la première instruction du programme utilisateur.Elle est immédiatement suivie de la ligne ... PCF AT BEGINNINGOF MAIN PROCEDURE indiquant que la traduction a lieu aulancement du programme. Le nom de procédure éventuellementspécifié pour le point d'intervention sur la première ligne est lenom de procédure implicite (APPLY implicite).

Page 157: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Compte rendu d'exécution de PCF en traitement par lots

47 F2 15UP Rev02 16-3

16.2 COMPTE RENDU D'EXECUTION

Le compte rendu d'exécution comprend une rubrique par point d'intervention atteintpendant l'exécution. Chaque rubrique comprend :

• l'identification du point d'intervention précédée de ...PCF AT,• les résultats obtenus pour chaque commande applicable à ce point d'intervention.

Le point d'intervention peut être identifié par :

• un numéro de ligne externe; un numéro de ligne interne (ILN); une étiquette, s'il y en aune, ou sinon un astérisque et, éventuellement, un déplacement en hexadécimal parrapport à l'étiquette; le nom de la procédure contenant le point d'intervention.

• une position mémoire spécifiée par son adresse effective.• une position mémoire spécifiée par une adresse semi-symbolique, avec le nom de la

procédure contenant le point d'intervention.• le nom symbolique POST-MORTEM pour les commandes exécutées en fin de

programme.• BEGINNING OF MAIN PROCEDURE pour les commandes fournissant des résultats

au lancement du programme.

La présentation des résultats dépend de la commande, mais, dans tous les cas, unrésultat est précédé du numéro et du verbe de la commande. Un exemple de compterendu d'exécution de PCF en traitement par lots figure en 16.2.1.

16.2.1 Compte rendu d'exécution sous PCF en traitement par lots

+----------------------------------------------------------------+| || (((PCF AT * LINE 170.10.20 ILN 20 IN PROCCOB || ...2 DUMP || ... COST +000018.40 || ))) || (((PCF AT * LINE 210 ILN 24 IN PROCCOB || ...4 CHANGE || ... RATE 00000.32 (00000.75 ) || ))) || (((PCF AT * LINE 210*2 ILN 24 IN PROCCOB || ...3 DUMP || ... COST +000018.40 || ... RATE 00000.32 || ))) || (((PCF AT FIN LINE 230 ILN 26 IN PROCCOB || ...5 DUMP || ... TITRE "PCF-TEST" || ))) || (((PCF AT POST MORTEM. || ...1 TRACE || ... 1 DEBUT LINE 170 ILN 17 IN PROCCOB || ... 1 FIN LINE 230 ILN 26 IN PROCCOB || ))) |+----------------------------------------------------------------+

Page 158: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

16-4 47 F2 15UP Rev02

Page 159: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 17-1

17. Compte rendu d'exécution de PCF eninteractif et en télétraitement par lots

Ce chapitre décrit le compte rendu d'exécution de PCF en interactif et en télétraitementpar lots. Il sort en général sur terminal, mais peut être dirigé vers un fichier séquentielindiqué au moyen de la commande OUTPUT (voir chapitre 6).

Les comptes rendus d'exécution de PCF en interactif et en télétraitement par lots sontidentiques, à cette différence près que le compte rendu de PCF en télétraitement par lotscommence par la bannière GCOS standard en interactif, juste après que l'utilisateur aitintroduit la commande DEBUG Xnnn. La présentation des comptes rendus est décrite ci-après.

17.1 MESSAGES ET PREFIXES PCF ET DIALOGUE UTILISATEUR

Le dialogue entre PCF et l'utilisateur se fait au moyen de messages et de préfixes. Ils'agit d'une chaîne de caractères apparaissant dans les colonnes de gauche des sortiessur terminal, réservées à cet effet. On distingue deux catégories :

• messages demandant à l'utilisateur d'introduire du texte qui sera interprété enconséquence.

• préfixes de sortie indiquant la signification d'une ligne de compte rendu PCF.

Les différentes formes de messages et préfixes PCF, avec leur signification, sontrépertoriées dans le tableau 17-1.

Page 160: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

17-2 47 F2 15UP Rev02

Tableau 17-1. Récapitulation des messages et préfixes

M ESSAG ES ET PR EFIXES SIG NIFICAT IO N

******

. . .nnnnn-D:

. . .nnnnn-:

???

...

(((

)))

>>>

<<<

-->

Ligne précéden te incom plète. A com pléter.

Em is à la suite d 'une interruption.

Indiquent le niv eau de grav ité d 'un diagnostic lors de latraduction ou de l'exécution d 'une com m ande PCF.

Précède les lignes de résultats de PCF.

Indique l'entrée dans le processeur PCF.

Indique la sortie du processeur PCF.

Dem ande à l'utilisateur d 'introduire une com m ande PCF,im m édia te (sans clause "Q uand" ou dif férée (av ec clause"Q uand"). Dans le second cas, le num éro de com m andeim plic ite est nnnnn.

DEM ANDESD 'ENT REE

PREFIXESDE SO RTIE

Précède la bannière G C O S pour une session PCF entélétraitem ent par lots.

Indique la f in d 'une session PCF en té létraitem ent par lots.

P récède le m essage indiquant qu'un trav ail est prêt à être m is au point en té létraitem ent par lots.

Remarque : Ces indications permettent à l'utilisateur de savoir immédiatementce qu'il doit faire ou ce que signifie une ligne donnée de compterendu de PCF.

Page 161: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Compte rendu d'exécution de PCF en interactif et en télétraitement par lots

47 F2 15UP Rev02 17-3

17.2 COMPTE RENDU D'EXECUTION

En interactif ou en télétraitement par lots, le compte rendu d'exécution est pratiquementidentique à celui généré en traitement par lots. Il comprend une rubrique par pointd'intervention atteint pendant l'exécution. La première ligne de chaque rubrique identifiele point d'intervention par :

• un numéro de ligne externe; un numéro de ligne interne; une étiquette, s'il y en a une,ou sinon un astérisque et, éventuellement, un déplacement en hexadécimal parrapport à l'étiquette; le nom de la procédure contenant le point d'intervention.

• une position mémoire spécifiée par son adresse effective.

• une position mémoire spécifiée par une adresse semi-symbolique, avec le nom de laprocédure contenant le point d'intervention.

• le nom symbolique POST-MORTEM pour les commandes exécutées en fin deprogramme.

• BEGINNING OF MAIN PROCEDURE pour les commandes fournissant des résultatsau lancement du programme.

Les lignes suivantes de chaque rubrique indiquent, pour chaque commande applicable àce point d'intervention, son nom et, le cas échéant, les résultats. Dans le cas d'unePAUSE, le message ...nnnnn D: indique que l'utilisateur doit introduire une commande.Un exemple de compte rendu d'exécution de PCF en interactif figure en 17.3.1.

Page 162: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

17-4 47 F2 15UP Rev02

17.3 MENUS GCL ET MESSAGES DE GUIDAGE

Si l'utilisateur commet une erreur de syntaxe, un menu s'affiche pour l'aider à la corriger.Il peut consulter les menus GCL et les textes HELP sous PCF, en interactif ou entélétraitement par lots. Pour plus de détails sur GCL, se reporter au manuel de référencede l'utilisateur IOF (22UJ).

Remarque : Il est impossible d'accéder à un texte HELP concernant unparamètre de commande PCF en tapant "?" après la commandeen mode ligne.

17.3.1 Compte rendu d'exécution de PCF en interactif

+----------------------------------------------------------------+| (((PCF AT * LINE 10 ILN 1 IN P || ...PCF AT BEGINNING OF MAIN PROCEDURE. || ...100 D: TRACE MAP AT A_L; || ...110 D: PAUSE AT LN 260 ; || ...120 D: GO; || ))) || (((PCF AT * LINE 260 ILN 26 IN P || ...110 PAUSE || ...120 D: D I; || ... I 0 || ...120 D: GO; || ))) || (((PCF AT * LINE 260 ILN 26 IN P || ...110 PAUSE || ...120 D: K 110 || ... KILLED COMMANDS ARE 110 || ...110 D: GO; || ))) || (((PCF AT POST MORTEM. || ...100 TRACE || ... 1 * LINE 40 ILN 4 IN P || ... 1 P LINE 10 ILN 1 IN P || ))) |+----------------------------------------------------------------+

Page 163: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 18-1

18. Compte rendu d'exécution de PCFsous TDS

Ce chapitre décrit le compte rendu d'exécution de PCF sous TDS. Lorsque PCF estlancé par la commande TRACE PRINT PCF, le compte rendu est rangé en format SARFdans une bibliothèque qui a été affectée au nom de fichier interne DBUGFILE aumoment du lancement de la session TDS.

Exemple :

ASSIGN DBUGFILE,MABIB,DVC=MS/M452,MD=K999;

Lorsque PCF est lancé par la commande TRACE SEND PCF, le compte rendud'exécution sort sur l'imprimante connectée au terminal utilisateur. De plus, lacommande OUTPUT (voir Chapitre 6) permet de diriger la totalité ou une partie ducompte rendu vers un fichier séquentiel donné.

Le compte rendu d'exécution de PCF sous TDS se divise en deux parties :

• le compte rendu de traduction

• le compte rendu d'exécution proprement dit.

18.1 COMPTE RENDU DE TRADUCTION

Le compte rendu de traduction comporte deux types de zones:

• zone diagnostic

• zone commande

La zone diagnostic contient tous les diagnostics relatifs à la commande imprimée au-dessus. Ils correspondent à différents degrés de gravité d'erreur indiqués par le nombred'astérisques et le texte en anglais. Les diagnostics peuvent indiquer le rejet de lacommande ou une action correctrice implicite.

La zone commande contient le texte de la commande tel qu'il est donné par l'utilisateur.A l'affichage, les espaces non significatifs sont remplacés par un seul espace. Unexemple de compte rendu de traduction figure en 18.1.1.

Page 164: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

18-2 47 F2 15UP Rev02

18.1.1 Compte rendu de traduction

+----------------------------------------------------------------+| || (((PCF AT PROCCOB (-42) LINE 10 ILN 1 IN PROCOB || ...PCF AT BEGINNING OF MAIN PROCEDURE. || ...1 1 TRACE MAP AT ALL-LABELS; || ...2 2 DUMP COST IN STRUC AT ILN 20; || ...3 3 DUMP COST, RATE AT LINE 210*2; || ...4 4 CHANGE RATE=0.32 AT LINE 210; || ...5 5 DUMP TITRE AT FIN; || |+----------------------------------------------------------------+

Remarque : La première ligne du compte rendu de traduction indique le pointd'intervention à la première instruction du programme utilisateur.Elle est immédiatement suivie de la ligne ... PCF AT BEGINNINGOF MAIN PROCEDURE indiquant que la traduction a lieu aulancement du programme. La procédure éventuellement spécifiéepour le point d'intervention sur la première ligne est le nom deprocédure implicite (APPLY implicite).

18.2 COMPTE RENDU D'EXECUTION

Le compte rendu d'exécution comprend une rubrique par point d'intervention atteintpendant l'exécution. Chaque rubrique comprend :

• l'identification du point d'intervention précédée de (((PCF AT,• les résultats obtenus pour chaque commande applicable à ce point d'intervention.

Le point d'intervention peut être identifié par :

• un numéro de ligne externe; un numéro de ligne interne; une étiquette s'il y en a une,ou sinon un astérisque, et éventuellement, un déplacement en hexadécimal parrapport à l'étiquette; le nom de la procédure contenant le point d'intervention.

• une position mémoire spécifiée par son adresse effective.

• une position mémoire spécifiée par une adressse semi-symbolique, avec le nom de laprocédure contenant le point d'intervention.

• le nom symbolique POST-MORTEM pour les commandes exécutées en fin deprogramme.

• BEGINNING OF MAIN PROCEDURE pour les commandes fournissant des résultatsau lancement du programme.

La présentation des résultats dépend de la commande, mais, dans tous les cas, unrésultat est précédé du numéro et du verbe de la commande. Un exemple de compterendu d'exécution de PCF sous TDS figure en 18.2.1.

Page 165: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Compte rendu d'exécution de PCF sous TDS

47 F2 15UP Rev02 18-3

18.2.1 Compte rendu d'exécution sous TDS

+----------------------------------------------------------------+| || (((PCF AT * LINE 170..20 ILN 20 IN PROCCOB || ...2 D || ... COST +000018.40 || ))) || (((PCF AT * LINE 210 ILN 24 IN PROCCOB || ...4 C || ... RATE 00000.32 (00000.75 ) || ))) || (((PCF AT * LINE 210*2 ILN 24 IN PROCCOB || ...3 D || ... COST +000018.40 || ... RATE 00000.32 || ))) || (((PCF AT FIN LINE 230 ILN 26 IN PROCCOB || ...5 D || ... TITRE "PCF-TEST" || ))) || (((PCF AT POST MORTEM. || ...1 T || ... 1 DEBUT LINE 170 ILN 17 IN PROCCOB || ... 1 FIN LINE 230 ILN 26 IN PROCCOB || ))) || |+----------------------------------------------------------------+

Page 166: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

18-4 47 F2 15UP Rev02

Page 167: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 19-1

19. Mise au point de programmesen langage C

Ce chapitre traite exclusivement des caractéristiques PCF se rapportant à la mise aupoint de programmes en langage C.

19.1 TYPES DE VARIABLES

Les différents types de variables du langage C sont :

• entiers demi-mot (short int),

• entiers mot (int, long int),

• chaînes de caractères (char),

• chaîne de bits (zones bit),

• pointeurs (pointer)

• entrée (fonction externe)

• valeurs binaires logiques (short unsigned, unsigned, long unsigned),

• nombres réels en simple précision (float),

• nombres réels en double précision (double).

Les variables peuvent être des variables scalaires simples ou des agrégatscorrespondant à des structures plus complexes. Les agrégats peuvent contenir desdéfinitions de tableaux. Les tableaux sont multidimensionnels (nombre de dimensionsillimité), la limite inférieure étant 0 et la limite supérieure étant constante.

Il existe deux modes d'affectation de classe mémoire :

• statique avec champ d'application interne ou externe (static),• automatique (auto, register).

Les noms utilisés dans les structures peuvent être qualifiés, afin d'éviter toute ambiguité.Les noms qualifiés sont cités en PCF sous leur nom en C, avec les mêmes règles dequalification; toutefois tous les indices doivent être regroupés à la fin d'un nom detableau qualifié.

Page 168: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

19-2 47 F2 15UP Rev02

Exemple :

" AA.bb.cc[n][m] "

(au lieu de " AA[n].bb[m].cc " en C)

19.2 POINTEURS DE TYPE

Une variable peut se référencer au moyen d'un pointeur d'indirection. L'opérateur "*"indique une indirection (adressage indirect) vers une variable de type. La syntaxe est lasuivante :

* expression-données [.expression-données]

Ce type de référence ne peut s'utiliser qu'avec le langage C et les opérationsarithmétiques sur les pointeurs ne sont pas permises.

Exemples :

Déclarations en C: int *pt;struct S {int a; char b;} v;struct S *p;

Commandes PCF: DUMP *ptCHANGE (*p).a = 2

19.3 CONSTANTES

Certaines constantes en C peuvent être utilisées sous PCF soit pour modifier la valeurd'une variable (CHANGE), soit dans des comparaisons (clauses IF). Les diverses formesde constantes admissibles sont précisées ci-après.

19.3.1 Entiers

Les entiers s'expriment sous forme de nombres décimaux éventuellement signés.

Exemples :

10 -12 +30

Page 169: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes en langage C

47 F2 15UP Rev02 19-3

19.3.2 Chaînes de caractères

Les chaînes de caractères s'expriment sous forme d'une série de caractères entreguillemets.

Exemples :

"CECI EST UN LITTERAL""""BONJOUR""".

19.3.3 Enumération de variables

Une variable faisant partie d'une énumération se présente sous la forme d'une série decaractères placée entre guillemets. Elle a une valeur symbolique correspondant à unevaleur numérique interne à partir de laquelle PCF peut retrouver la valeur symbolique.La syntaxe est la suivante :

référence-énumérée

Un message d'erreur s'affiche si une valeur énumérée inconnue est citée lors del'exécution d'une commande :

"INVALID REFERENCE TO ENUM VARIABLE"(Référence incorrecte à une variable énumérée)

Exemples :

Déclaration en C: énum feux (vert,orange,rouge);énum feux carrefour1,carrefour2;carrefour1 = rouge;carrefour2 = vert;

Commandes PCF: DUMP carrefour2carrefour2 vertCHANGE carrefour1 = "vert"(rouge) vert

19.3.4 Nombres réels

Les nombres réels sont exprimés en notation virgule fixe ou exponentielle :

Exemples :

+17.3, -124E-4, 1.2e4

Page 170: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

19-4 47 F2 15UP Rev02

19.3.5 Constantes pointeur ou entrée

Outre les formes de constantes citées ci-dessus, PCF offre la possibilité de définir desconstantes pointeur ou entrée. La syntaxe de ces constantes est la suivante:

|[/DIRECT] | |[/R0]||[/DT] | |[/R1]|| | | | /stn.ste.sra|[/INDIRECT] | |[/R2]||[/IT] | |[/R3]|

DIRECT ou DT indique un pointeur direct, INDIRECT ou IT un pointeur indirect. Unpointeur direct constitue la valeur implicite. R0, R1, R2 ou R3 sont de indicateursd'anneau, R3 étant la valeur implicite.sta, ste et sra définissent une adresse segmentée de mémoire virtuelle.

Exemples :

/8.12.3FF /R2/8.16.42 /IT/9.7.372 /DT/R3/8.12.0

Exemples:

Déclarations C

int i,j,*ip;ip=&i;i=22;j=11;

Commandes PCF

C: DUMP ip ip /DT/R3/8.12.000F

C: DUMP *ip i 22

C: DUMP &j /DT/R3/8.12.0015

C: CHANGE ip=8.12.0015 ip /DT/R3/8.12.15(DT/R3/8.12.F)

C: DUMP *ip i 11

Page 171: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes en langage C

47 F2 15UP Rev02 19-5

19.4 STRUCTURE DE BLOC

En C, les noms, même correctement qualifiés, peuvent ne pas être uniques dans uneunité de compilation. Il leur suffit d'être uniques dans un bloc qui est une entitécommençant par un caractère "{" et se terminant par un caractère "}" correspondant.

PCF a donc besoin de renseignements complémentaires sur les variables citées dansune série de commandes. Un paramètre de la commande APPLY permet de qualifier lenom de l'unité de compilation à l'aide du nom d'un ou plusieurs blocs, sous la formesuivante :

nom-unité-compilation.nom-fonction

Certains blocs ne correspondant pas à une fonction, "nom-fonction" peut être remplacépar le numéro de la ligne contenant le caractère "{" voulu, ou par le numéro de ligne dela première instruction exécutable du bloc.

Exemples :

APPLY IN MAINCV.chaîne-caractères;APPLY IN MAINCV.LINE 230;

Toutes les étiquettes ou variables citées dans une commande s'appliquant à un bloc sontd'abord recherchées à l'intérieur du champ d'application de ce bloc (champ d'applicationétant pris dans son sens normal en langage C). En cas d'échec, elles sont recherchéesdans les autres blocs du programme. La recherche échoue lorsqu'aucune variable n'aété trouvée ou lorsque le résultat est douteux. Ces cas sont signalés par des messagesd'erreur ou d'avertissement.

Toutes les commandes s'appliquant à un bloc peuvent uniquement faire référence à desnoms d'étiquettes ou de variables dont le champ inclut ce bloc. Toute tentative deréférence à une variable dont le champ ne couvre pas le bloc indiqué dans la commandeAPPLY donne lieu à un diagnostic, comme si la variable était non définie ou inconnue.

Page 172: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

19-6 47 F2 15UP Rev02

19.5 RÉFÉRENCE AUX INSTRUCTIONS

Les instructions en langage C peuvent être désignées par :

• une étiquette, ou

• un numéro de ligne.

En C, les noms d'étiquettes sont une combinaison de lettres, de chiffres et de caractèresde soulignement. Ils sont désignés sous cette forme en PCF.

Exemple :

DUMP P.X[2] AT L1,L2;

demande l'affichage du second élément de P.X chaque fois que le programme atteint L1ou L2.

En C, les numéros de lignes internes figurent en deuxième colonne de la liste decompilation, sauf si l'option XLN du compilateur a été utilisée, et les numéros de lignesexternes dans la première colonne (voir plus loin). Les numéros de lignes externespeuvent avoir l'une des deux formes suivantes :

• les numéros des lignes d'origine apparaissent sous forme de nombres en décimal etpeuvent être cités tels quels;

• les lignes ayant été insérées par l'éditeur de texte sont précédées d'un point. Ellesdoivent être désignées comme suit :

n1.n2

n1 est le numéro de la ligne d'origine précédant immédiatement celle à laquelle il est faitréférence et n2 le numéro de la ligne désignée (précédée d'un point dans la liste).

19.6 CROCHETS

En C, les crochets permettent de citer un index, contrairement au GPL qui utilise lesparenthèses. Les crochets ne sont acceptés qu'en C.

Exemples :

Déclarations en C: short AA[10];

Commande PCF: DUMP AA[7];

Page 173: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes en langage C

47 F2 15UP Rev02 19-7

19.7 MAJUSCULES ET MINUSCULES

En C, un nom symbolique peut être constitué de minuscules ou d'un mélange demajuscules et de minuscules. PCF fait la différence, mais uniquement pour le langage C.

Exemples :

Déclarations en C: int XX, xx, xX;

Pour PCF "XX", "xx" et "xX" sont trois noms symboliques différents.

Commande PCF: DUMP XX, xx, xX;

19.8 EXEMPLE DE SESSION DE MISE AU POINT EN C

Les commandes utilisées sont les suivantes :

• affectation de la bibliothèque LIB,

• affichage des bibliothèques affectées,

• édition des lignes 10 à 230 du programme origine,

• vidage de la valeur du pointeur de type p (commande différée 100),

• vidage de la valeur de la structure pointée par p (commande différée 110),

• vidage de l'union U_grec, sur laquelle pointe p (commande différée 120),

• vidage de l'élément x de l'union U_grec (commande différée 130),

• vidage de la sous-structure I de l'union U_grec (commande différée 140),

• modification de la valeur de la variable énum x (commande différée 150),

• arrêt à la ligne 230 (commande différée 160),

Quand le programme atteint la ligne 230, il y a exécution de commandes immédiatessuivantes :

• tentative d'attribution d'une valeur incorrecte à une variable énum,

• modification conditionnelle de la variable énum,

• vidage du pointeur de type p,

• vidage de l'adresse de U_grec (même valeur que p),

• validation du mode pas à pas au niveau instruction machine (commande 170)

• après deux instructions, invalidation du mode pas à pas.

Page 174: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

19-8 47 F2 15UP Rev02

L'exemple ci-dessous illustre la liste des commandes, leur fonction ainsi que la listeobtenue en sortie. Il présente également les lignes du programme origine (affichées parla commande DSR).

S: EXEC_PG CL012DOC LIB=PCF.XLM DEBUG=TN;

(((PCF AT CL012DOC LINE 20 ILN 2 IN CL012DOC...PCF AT BEGINNING OF MAIN PROCEDURE....100 D: lib pcf.xsl...100 D: display... LIB : pcf.xsl...100 D: dsr line 10 to line 230... 10 main()... 20 {... 30... 40 enum GREC {alpha , beta , gamma};... 50... 60 union... 70 {... 80 struct... 90 {... 100 enum GREC x;... 110 int size;... 120 } I;... 130 struct... 140 {... 150 enum GREC y;... 160 float size;... 170 } F;... 180 } U_grec , *p;... 190... 200 p = &U_grec;... 210 U_grec.I.x = 2;... 220 U_grec.I.size = 3;... 230 }...100 D: dump p at line 230...110 D: d *p at line 230...120 D: d U_grec at ln 230...130 D: d U_grec.I.x at line 230...140 D: d (*p).I at line 230...150 D: change (*p).I.x = "alpha" at line 230...160 D: pause at line 230...170 D: list... CURRENT APPLY : CL012DOC LINE 20 ILN 2 IN CL012DOC $LM... 100 dump p at line 230;... 110 d *p at line 230;... 120 d U_grec at ln 230;... 130 d U_grec.I.x at line 230;... 140 d (*p).I at line 230;... 150 c (*p).I.x = "alpha" at line 230;... 160 pause at line 230;...170 D: go)))(((PCF AT * LINE 230 ILN 23 IN CL012DOC...100 DUMP... p /DT/R0/8.2A.00EC...110 DUMP... I... x gamma... size 3... F... y gamma... size *00000003*...120 DUMP... U_grec... I... x gamma... size 3... F... y gamma... size *00000003*...130 DUMP... x gamma...140 DUMP... I... x gamma

Page 175: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Mise au point de programmes en langage C

47 F2 15UP Rev02 19-9

... size 3

...150 CHANGE

... x alpha

...

... (gamma)

...160 PAUSE

...170 D: change (*p).I.x = "ALPHA "

... *** ERRONEOUS VALUE FOR ENUM

... *** CHANGE OF x INTERRUPTED BY PRECEDING ERROR, NOTHING MODIFIED.

... *** ERROR DURING COMMAND EXECUTION.

...170 D: change (*p).I.x = "beta" if U_grec.I.size = 3

... x beta

...

... (alpha)

...170 D: dump p

... p /DT/R0/8.2A.00EC

...170 D: dump &U_grec

... /DT/R1/8.2A.00EC

...170 D: p at e_i

...180 D: go)))(((PCF AT *(+8) LINE 230 ILN 23 IN CL012DOC...170 PAUSE...180 D: go)))(((PCF AT *(+C) LINE 230 ILN 23 IN CL012DOC...170 PAUSE...180 D: kill 170... KILLED COMMANDS ARE 170...170 D: go)))S:

Page 176: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

19-10 47 F2 15UP Rev02

Page 177: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 20-1

20. Traitement des modules chargeablesde grande taille

Ce chapitre détaille le traitement spécifique qu'implique la mise au point en modesymbolique des modules chargeables de grande taille.

20.1 PROBLÈMES PROPRES AUX MODULES CHARGEABLES DE GRANDETAILLE

La compilation d'un programme avec l'option DEBUG permet de le mettre au point enmode symbolique. Cela multiplie cependant par 4 à 10 le volume des CU générés parrapport à celui des CU obtenus sans mise en oeuvre de l'option DEBUG. Lorsqu'unmodule chargeable comporte un trop grand nombre de CU (plus de cent), lesinformations de gestion nécessaires à la mise au point en mode symbolique prennenttrop de place et l'éditeur de liens LINKER ne peut constituer le module chargeabledéfinitif.

On peut éviter cette contrainte en pratiquant l'édition de liens sur des CU de tailleréduite, dans lesquels ont été supprimées les informations de gestion. Pendantl'exécution, PCF peut charger en dynamique ces informations à partir des CU initiauxrangés dans diverses bibliothèques.

Page 178: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

20-2 47 F2 15UP Rev02

20.2 TRAITEMENT DES MODULES CHARGEABLES DE GRANDE TAILLE

Phase 1 : Compilation

La compilation avec l'option DEBUG se fait selon la procédure normale et permetd'obtenir des CU complets contenant les informations de gestion nécessaires à la miseau point en mode symbolique.

Phase 2 : "Allègement"

Les CU résultant de la première phase sont ensuite "allégés", autrement dit il y asuppression des informations de gestion nécessaires à la mise au point en modesymbolique. Les CU "allégés" sont à peu près de la même taille que ceux obtenus sansl'option DEBUG, autrement dit avant optimisation. Il faut disposer d'une secondebibliothèque d'unités compilées pour y ranger les CU "allégés" qui ont les mêmes nomsque ceux d'origine. Il peut s'agir d'une bibliothèque temporaire si la phase d'édition deliens suit immédiatement la recherche des CU. Un utilitaire appelé SPLIT_CU se chargede l'opération d'"allègement" et peut être lancé en JCL en mode traitement par lots ou enGCL sous IOF.

Phase 3 : Edition de liens

Il faut ensuite effectuer l'édition de liens des CU allégés qui sont à présent assez petitspour permettre la création d'un module chargeable. Cette phase doit disposer dans sonitinéraire de recherche de la bibliothèque de CU "allégés", qui doit précéder cellecontenant les CU d'origine (si cette bibliothèque figure elle aussi dans l'itinéraire derecherche). Par exemple, si nom-bib-cu1 existe dans l'itinéraire de recherche deLINKER, elle doit faire suite à nom-bib-cu2, faute de quoi LINKER travaillera sur les CUd'origine et non pas sur les CU "allégés".

Phase 4 : Mise au point

Le module chargeable s'exécute normalement. Quand il a besoin d'informations degestion nécessaires à la mise au point en mode symbolique, PCF recherche les CUcorrespondants dans nom-bib-cu1 qui contient les CU d'origine. Cette bibliothèque doittoutefois être spécifiée dans l'itinéraire de recherche du CU au moment de l'exécution(ou juste avant) soit par les commandes CULIB1/2/3 de PCF, soit par la commande IOFMWINLIB CU.

Page 179: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Traitement des modules chargeables de grande taille

47 F2 15UP Rev02 20-3

20.3 COMMANDE SPLIT_CU

20.3.1 Syntaxe GCL (domaine IOF)

+----------------------------------------------------------------+| || {SPLIT_CU | SCU } MEMBER= nom-cu || INLIB = nom-bib-cu1 || OUTLIB= nom-bib-cu2 || |+----------------------------------------------------------------+

Paramètres

MEMBER Nom du CU à "alléger". La convention astérisque peut êtreutilisée.

INLIB Nom de la bibliothèque dans laquelle l'utilitaire doit chercherles CU à "alléger".

OUTLIB Nom de la bibliothèque dans laquelle doivent être rangés lesCU "allégés".

20.3.2 Syntaxe JCL

+----------------------------------------------------------------+| || STEP H_SCU SYS.HLMLIB OPTIONS= 'nom-cu'; || ASG IN_FD nom-bib-cu1 SHARE=DIR; || ASG OUT_FD nom-bib-cu2 SHARE=DIR; || ENDSTEP; || |+----------------------------------------------------------------+

Paramètres :

nom-cu Nom du CU à "alléger". La convention astérisque peut êtreutilisée.

nom-bib-cu1 Nom de la bibliothèque dans laquelle l'utilitaire doit chercherles CU à "alléger".

nom-bib-cu2 Nom de la bibliothèque dans laquelle doivent être rangés lesCU "allégés".

Page 180: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

20-4 47 F2 15UP Rev02

20.4 SPECIFICATION DE LA BIBLIOTHÈQUE CU D'ORIGINE

Lors de l'exécution, PCF doit pouvoir localiser la bibliothèque contenant les CU d'origine(avant "allègement") selon l'une des méthodes ci-dessous :

(i) Avant exécution du module chargeable, par la commande IOF MWINLIB, parexemple :

S:MWINLIB CU nom-bib-cu1;

(ii) Au cours de la session PCF, par les commandes PCF CULIB1/2/3, par exemple :

D: CULIB1 nom-bib-cu1;

20.4.1 Syntaxe de la commande CULIB1/2/3

+----------------------------------------------------------------+| || {CULIB1 | CULIB2 | CULIB3 } nom-bib-cu; || |+----------------------------------------------------------------+

On peut spécifier jusqu'à 3 bibliothèques contenant des informations de gestionnécessaires à la mise au point en mode symbolique, l'ordre de recherche étant CULIB1,CULIB2, CULIB3. Il y a un contrôle de cohérence, fondé sur les dates de création, afinde ne pas oublier de renouveler les phases d'"allègement" et d'édition des liens en casde recompilation d'un CU dans la bibliothèque nom-bib-cu1; PCF peut ainsi utiliser lesnouvelles informations de gestion pour la mise au point en mode symbolique.

Si l'édition de liens du module chargeable s'est faite avec l'option SYMBMAP=NO, lacommande IOF MWINLIB CU doit spécifier l'itinéraire de recherche. Il n'est pas possible,dans ce cas, d'utiliser les commandes PCF CULIB1/2/3. Cette option de LINKER n'estpas conseillée, mais peut cependant s'avérer nécessaire pour des programmes de trèsgrande taille.

20.5 LIMITES DE TAILLE

PCF ne peut pas charger en mémoire plus de 32 segments d'informations. Il existecependant un mécanisme d'échange permettant de lever cette restriction, sauf si unecommande unique a besoin de plus de 32 segments en même temps.

La procédure décrite ici permet la mise au point en mode symbolique d'un modulechargeable comportant jusqu'à 2000 CU.

Pour un module chargeable de très grande taille (plus de 800 CU), il faudraprobablement réserver plus de mémoire pour PCF. Ceci peut se faire au moment del'édition de liens au moyen de la commande SEGTAB1 (voir Exemple 5 ci-dessous).

Page 181: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Traitement des modules chargeables de grande taille

47 F2 15UP Rev02 20-5

20.6 EXEMPLES

Dans les exemples suivants, les CU d'origine sont rangés dans une bibliothèque appeléeBIBCU.ORIG. On suppose que tous les noms de CU commencent par 'MON'. Il faut toutd'abord "alléger" les CU et ranger les segments "allégés" dans BIBCU.ALL. Il y a ensuiteédition de liens du module chargeable en utilisant les CU "allégés". Avant ou pendantl'exécution du module chargeable, il faut définir la bibliothèque des CU d'origine dansl'itinéraire de recherche de PCF, ce qui permet de récupérer les informations de gestionnécessaires à la détection d'une commande demandant un mise au point en modesymbolique.

Exemple 1 :

Cet exemple est en mode interactif et utilise des commandes GCL. La bibliothèque deCU d'origine est définie avant l'exécution du module chargeable.

SPLIT_CU MEMBER= MON* INLIB= BIBCU.ORIG OUTLIB= BIBCU.ALL;LINK_PG MON INLIB= BIBCU.ALL;MWINLIB CU BIBCU.ORIG;EXEC_PG MON, DEBUG=TN;

Exemple 2 :

Cet exemple est en mode traitement par lots et utilise des commandes JCL. Labibliothèque CU d'origine a été définie avant l'exécution du module chrgeable.

STEP H_SCU SYS.HLMLIB OPTIONS='MON*';ASG IN_FD BIBCU.ORIG SHARE=DIR;ASG OUT_FD BIBCU.ALL SHARE=DIR;$ENDSTEP;LINKER MON INLIB= BIBCU.ALL OUTLIB=MON.LMLIB;LIB CU INLIB1= BIBCU.ORIG;STEP MON, MON.LMLIB,DEBUG=*IN;$ENDSTEP;$INPUT IN...$ENDINPUT IN;

Exemple 3 :

Cet exemple est en mode interactif et utilise des commandes GCL. La bibliothèque CUd'origine est définie avant l'exécution du module chargeable.

SPLIT_CU MEMBER= MON*INLIB= BIBCU.ORIGOUTLIB= BIBCU.ALL;LINK_PG MON INLIB= BIBCU.ALL;EXEC_PG MON DEBUG=TN;.CULIB1 BIBCU.ORIG;..

Page 182: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

20-6 47 F2 15UP Rev02

Exemple 4 :

Cet exemple est en mode par lots et utilise des commandes JCL. La bibliothèque CUd'origine est définie lors de l'exécution du module chargeable.

STEP H_SCU SYS.HLMLIB OPTIONS='MON*';ASG IN_FD BIBCU.ORIG SHARE=DIR;ASG OUT_FD BIBCU.ALL SHARE=DIR;$ENDSTEP;LINKER MON INLIB= BIBCU.ALL OUTLIB=MON.LMLIB;STEP MON, MON.LMLIB,DEBUG=*IN;$ENDSTEP;$INPUT IN.CULIB1 BIBCU.ORIG;..$ENDINPUT IN;

Exemple 5 :

Cet exemple est en mode interactif et utilise des commandes GCL. Lors de l'édition deliens, un segment de grande taille est affecté pour utilisation par PCF. La bibliothèqueCU d'origine est définie avant l'exécution du module chargeable.

SPLIT_CU MEMBER= MON* INLIB= BIBCU.ORIG OUTLIB= BIBCU.ALL;LINK_PG MON INLIB= BIBCU.ALL, COMMAND=(ENTRY MON,SEGTAB1=(SHRLEVEL=2, VSEG=1));MWINLIB CU BIBCU.ORIG;EXEC_PG MON, DEBUG=TN;

Page 183: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 A-1

A. Résumé de la syntaxe PCF

Ce chapitre fournit une description complète de la syntaxe PCF, selon la hiérarchie deséléments syntaxiques.

A.1 NIVEAU SYNTAXIQUE SUPERIEUR

Session-mise-au-point-PCF ::= commande-PCF [commande-PCF]...

commande-PCF ::= {commande-APPLY |commande-BEGIN |commande-CHANGE |commande-CHECKPOINT |commande-CULIB1 |commande-CULIB2 |commande-CULIB3 |commande-DISPLAY |commande-DSR |commande-DUMP |commande-END |commande-EXEC |commande-FSE |commande-GOTO |commande-GO |commande-INLIB1 |commande-INLIB2 |commande-INLIB3 |commande-KILL |commande-LIB |commande-LIST |commande-OUTPUT |commande-PAUSE |commande-RECOVER |commande-RESUME |commande-SUSPEND |commande-TRACE |commande-WHERE }

Page 184: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

A-2 47 F2 15UP Rev02

A.2 COMMANDES

APPLY ::= {APPLY | A} [liste-numéros-commande] IN nom-procédure [.bloc];

BEGIN ::= [numéro-commande] {BEGIN | B} [AT liste-points-intervention][clause-IF];

CHANGE ::= [numéro-commande] {CHANGE | C} affectation [,affectation]... [AT liste-points-intervention][clause-IF];

CHECKPOINT ::= [numéro-commande] {CHECKPOINT | CKPT} AT [liste-points-intervention][clause-IF];

CULIB1 ::= [numéro-commande] CULIB1 ["description-bibliothèque"] [AT liste-points-intervention][clause-IF];

CULIB2 ::= [numéro-commande] CULIB2 ["description-bibliothèque"] [AT liste-points-intervention][clause-IF];

CULIB3 ::= [numéro-commande] CULIB3 ["description-bibliothèque"] [AT liste-points-intervention][clause-IF];

DISPLAY ::= DISPLAY;

DSR ::= [numéro-commande] DSR [ {LINE | LN} numéro-ligne [ TO {LINE | LN} numéro-ligne]]

DUMP ::= [numéro-commande] {DUMP | D} expression-données [,expression-données]... [AT liste-points-intervention][clause-IF];

END ::= [numéro-commande] END [DUMP] [AT liste-points-intervention][clause-IF];

EXEC ::= [numéro-commande] {EXEC | E} "description-fichier" [AT liste-points-intervention][clause-IF];

FSE ::= [numéro-commande] FSE [AT liste-points-intervention][clause-IF];

GOTO ::= [numéro-commande] GOTO point-intervention [AT liste-points-intervention][clause-IF];

GO ::= {[/ | [numéro-commande] GO} [AT liste-points-intervention][clause-IF];

INLIB1 ::= [numéro-commande] {INLIB1 | IL1} ["description-bibliothèque"] [AT liste-points-intervention][clause-IF];

Page 185: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Résumé de la syntaxe PCF

47 F2 15UP Rev02 A-3

INLIB2 ::= [numéro-commande] {INLIB2 | IL2} ["description-bibliothèque"] AT liste-points-intervention][clause-IF];

INLIB3 ::= [numéro-commande] {INLIB3 | IL3} ["description-bibliothèque"] [AT liste-points-intervention][clause-IF];

KILL ::= [numéro-commande] {KILL | K} [liste-numéros-commandes] [AT liste-points-intervention][clause-IF];

LIB ::= [numéro-commande] {LIB} "description-bibliothèque"] [AT liste-points-intervention][clause-IF];

LIST ::= [numéro-commande] {LIST | L} [liste-numéros-commandes] [AT liste-points-intervention][clause-IF];

OUTPUT ::= [numéro-commande] {OUTPUT | O} ["description-fichier"] [AT liste-points-intervention][clause-IF];

PAUSE ::= [numéro-commande] {PAUSE | P} AT [liste-points-intervention][clause-IF];

RECOVER ::= [numéro-commande] RECOVER {ILLDEC | SUBSCRIPT} [AT liste-points-intervention][clause-IF];

RESUME ::= [numéro-commande] {RESUME | R} [liste-numéros-commandes] [AT liste-points-intervention][clause-IF];

SUSPEND ::= [numéro-commande] {SUSPEND | S} [liste-numéros-commandes] [AT liste-points-intervention][clause-IF];

TRACE ::= [numéro-commande] {TRACE | T} [NOT | MAP] [AT liste-points-intervention][clause-IF];

WHERE ::= [numéro-commande] {WHERE | W} [TRACK | TK] [AT liste-points-intervention][clause-IF];

Page 186: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

A-4 47 F2 15UP Rev02

A.3 NIVEAU SYNTAXIQUE INTERMEDIAIRE

liste-points-intervention ::= point-intervention [TO point-intervention] [,point-intervention [TO point-intervention]]...

affectation ::= référence-donnée = {expression-donnée | constante}

liste-numéros-commandes ::= numéro-commande [TO numéro-commande] [,numéro-commande [TO numéro-commande]]...

description-fichier ::= littéral-fichier (Pour une description complète de la syntaxe de ce paramètre, se reporter au manuel de référence IOF (21UJ))

description-bibliothèque ::= bib-78 (Pour une description complète de la syntaxe de ce paramètre, se reporter au manuel de référence IOF (21UJ))clause-IF ::= IF {expression-données | /SEV | /COUNT} [{NOT | ^ }] {=| < | > | <= | >= | EQ | NE | GT | LT | GE | LE} expression-données [{AND | & | OR ||} {expression-données | /SEV | /COUNT} [{NOT | ^}] {=| < | > | <= | >= | EQ | NE | GT | LT | GE | LE} expression-données]...

constante ::= {constante-numérique |constante-caractères |constante-hexadécimale |constante-chaine-bits |constante-pointeur |constante-complexe | .T. | .F.}

bloc ::= {{LINE | LN} numéro-ligne |ILN numéro |nom-procédure [.nom-procédure]...}

Page 187: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Résumé de la syntaxe PCF

47 F2 15UP Rev02 A-5

A.4 POINTS D'INTERVENTION ET RÉFÉRENCES DE DONNÉES

expression-données ::= {(expression-données) [indice-langage-C] |constante |[opérateur-adresse] référence-symbolique} |[opérateur-adresse] référence semi-symbolique} |opérateur-d'indirection expression-données-type |LOCAL_VARIABLES | L_V |référence-effective [opérateur-expression-données]...[format]...

indice-langage-C ::= "["expression-données [,expression-données]"]"

expression-données-typée ::= {(expression-données) [référence-symbolique]/ [indice-langage-C]|référence-symbolique [indice-langage-C]

référence-symbolique ::= {fom[.nom]...[(indice[,indice]...)] ::= |nom[.nom]...[indice-langage-C [andice-langage-C]...] |nom[{OF | IN} nom]... [(indice[,indice]...)]}

indice ::= {expression-données[{: | TO} expression-données]

référence-effective ::= {?[[stn.]ste.]sra |?STKi | ?STK(i[{: TO}j]) |?BRi | ?BR (i[{: TO}j]) |?GRi | ?GR (i[{: TO}j]) |?XRi | ?XR (i[{: TO}j]) |?SRi | ?SR (i[{: TO}j]) |?IC | ?TR | ?ST | ?SAM | ?PSA | ?PTV |?NBP|?LOC | ?PAR | ?COM | ?SAV |?{BRi|BR(i)| IC} . dépd.

point-intervention ::= {?[[stn.]ste.]sra |étiquette |{LINE | LN} numéro-ligne |numéro ILN |POST_MORTEM | POST-MORTEM | P_M | P-M |ALL_LABELS | ALL-LABELS | A_L | A-L |{EACH_REF | EACH-REF | E_R | E-R} référence-symbolique |{EACH_LINE | EACH-LINE | E_L | E-L} |{EACH_INSTR | EACH-INSTR | E_I | E-I}

numéro-ligne 2:= numéro [.[numéro]] [.numéro] [*rang]

référence-semi-symbolique ::= {@[nom[.dépl.]] | :[isn][.offset]}

opérateur ::= { + | - | -> | {[^|NOT] {= | <= | >=|EQ|NE|LE|GE|LT|GT|}}}

format ::= # codef [p [.q]]

codef ::= B | C | DPS | DPU | DUSLO | DUSLS | DUSTS | DUSTO | DUU | EFB | FB | H | L | LB | LFB | | P | RC | SFB | X | NAL | LN

Page 188: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

A-6 47 F2 15UP Rev02

A.5 NIVEAU SYNTAXIQUE INFERIEUR

nombre ::= chiffres

nom ::= { caractères | 'caractères' }

stn ::= hexa1

ste ::= hexa2

sra ::= hexa6

déplacement ::= hexa6

nom-procédure ::= nom

étiquette ::= nom

numéro-commande ::= numéro

rang ::= nombre

constante-numérique ::= [+ | -][nombre][.nombre] [{E | D | Q}[+ | -] nombre]

constante-caractères ::= "chaîne" [C]

constante-hexadécimale ::= "hexa"{X | H}

constante-chaîne-bits ::= "bits" B

constante-complexe ::= (constante-numérique,constantenumérique)

constante-pointeur ::= [/{DIRECT | DT | INDIRECT | IT}] [/{RO | R1 | R2 | R3}] / [[stn.]ste.]sra

opérateur-adresse ::= &

opérateur-d'indirection ::= *

Page 189: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 B-1

B. Format des données

Cette annexe comprend quatre tableaux:

Tableau B-1:DECLARATIONS DEDONNEES

Tableau indiquant la méthode de déclaration desdifférents types de variables en COBOL, FORTRAN etGPL.

Tableau B-2: LONGUEURDE DONNEES

Tableau indiquant la longueur maximum autorisée pourtous les types de données en COBOL, FORTRAN et GPL.

Tableau B-3: SYNTAXEDES FORMATS

Tableau récapitulatif de la syntaxe et de la significationdes formats PCF.

Tableau B-4: CODES DEFORMATS

Tableau indiquant le format associé à chaque type dedonnée.

Page 190: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

B-2 47 F2 15UP Rev02

Tableau B-1. Déclarations de données

T YPES DE DO N NEES

CHAINE

CO B OL FO R T RAN GPL

VALEU RBO OLEEN NE

DO NNEE DELO CALISAT IO N

BIN AIREFIXE

VIRGULEFLOTTANTE

DONNEES

ARITHMETIQUES

DECIMAL

CO ND ENSE

C A R A C T E R E S

BITS

LOGIQUE

POINTEUR

M O T

DEMI-MOT

SIMPLE

D O U B L E

Q U A D R U P L E

SIGNE

NON SIGNE

SIGNESEPARE AG A U C H E

SIGNESUPERPOSEA GAUCHE

SIGNESEPARE ADROITE

SIGNESUPERPOSEA DROITE

NON SIGNE

PICX (n)

néant

néant

néant

COMP-2

COMP-1

COMP-9

COMP-10

COMP-15

COMP-3 ou COMP-8

COMP-3 ou COMP-8

PIC S99.. LEADINGSEPARATE

PIC S99.. LEADING

PIC S99.. TRAILING

C H A R A C T E R * n

néant

LOGICAL

néant

INTEGER

néant

REAL

D O U B L EPRECISION

Q U A D R U P L EPRECISION

néant

néant

néant

néant

CHAR(n)

BIT(n)

néant

POINTER

FIXEDBIN(31)

FIXEDBIN(15)

néant

néant

néant

néant

néant

néant

néant

néantSEPARATE

PIC S99.. T RAILING

PIC 99..

néant

néant

néant néant

néant

ECLATE

PIC S99..

P IC S99..

Page 191: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Format des données

47 F2 15UP Rev02 B-3

Tableau B-2. Longueur de données

TYPES DE DO NN EE S

CHAINE

COBO L FO RT RAN G PL

V ALEURB OOLEENNE

DONNE E DELO CALISATIO N

BINAIREFIXE

V IR GULEFLOTTANTE

DONNEES

ARITHMETIQUES

DECIMAL

CON DE NS E

C A R A C T E R E S

BITS

LOGIQUE

M O T

DEMI-MOT

SIMPLE

D O U B L E

Q U A D R U P L E

SIGNE

NON SIGNE

SIGNESEPARE AG A U C H E

SIGNESUPERPOSEA GAUCHE

SIGNESEPARE ADROITE

SIGNESUPERPOSEA DROITE

NON SIGNE

néant

néant

néant

néant

néant

néant

néant

néant

néant

néant

néant

néant

néantnéant

néant

néant néant

néant

ECLATE

POINTEUR

INDEX

1 à 32767 car.

néant

6 octets

1 à 255 car.

1 à 4 oc tets

néant

1 à 32767 car.

1 à 64 bits

4 octets

néant

4 octe ts

2 octe ts

4 octets 4 octets

2 octets

4 octe ts

8 octe ts

néant

4 octets

8 octets

néant

16 octets

1 à 30 ch if .

1 à 30 chif .

néant

néant

néant

néant

2 à 31 oc te ts

1 à 30 octets

2 à 31 oc te ts

1 à 30 octets

1 à 30 oc te ts

La syntaxe d'un format PCF est :

# code [p [.q]]

"code" est une chaîne alphabétique correspondant au type de donnée, et p et q sont desqualificateurs numériques. Les valeurs applicables sont indiquées ci-dessous.

Page 192: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

B-4 47 F2 15UP Rev02

Tableau B-3. Syntaxe des formats

CO D E TYPE DE DO NN EE p q

B

C

DPS

DPU

DU SLO

DUSLS

DUSTO

DUSTS

DUU

EFB

FB

H

L

LB

LFB

P

RC

SFB

X

NAL

chaîne de bits

chaîne de ca ractères

décim al condensé signé

décim al condensé non signé

décim al écla té non s igné

binaire flottant sur 16 octets

binaire fixe

logique

binaire logique

pointeur

code retour

hexadécim al

instruction m achine

nom bre de b its

nom bre de ca rac tères

nom bre de position num ériques

nom bre de p ositions num ériques

nom bre de p ositions num ériques

nom bre de p ositions num ériques

nom bre de p ositions num ériques

nom bre de p ositions num ériques

nom bre de p ositions num ériques

nom b re de b its après le signe

nom bre d'octets

nom bre de b its

nom bre d'octets

sans objet

_

_

nom bre de décim ales

nom bre de décim ales

nom bre de décim ales

nom bre de décim ales

nom bre de décim ales

nom bre de décim ales

nom bre de décim ales

sans objet

déc im al écla té s ignesuperposé à gauche

déc im al écla té s igneséparé à gauche

déc im al écla té s ignesuperposé à droite

déc im al écla té s igneséparé à d roite

hexadécim a l et cha îne de caractè res

1 = valeu r logique sur 1 bit4 = valeu r logique sur 4 bits

binaire flottant à doub leprécision su r 8 o ctets

binaire flottant à sim pleprécision su r 4 octets

Page 193: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Format des données

47 F2 15UP Rev02 B-5

Tablau B-4. Codes de formats

TYPES DE DO NNEES

CHAINE

CO DES FO RM AT (*)

VALEURBO OLEENNE

DO NNEE D ELO CALISATIO N

BINAIREFIXE

VIRGULEFLOTTANTE

DECIMAL

CONDENSE

C A R A C T E R E S

BITS

LOGIQUE

SIMPLE

D O U B L E

Q U A D R U P L E

SIGNE

NON SIGNE

NON SIGNE

B1 à B64

P

DUSLS1 à DUSLS30.q (**)

ECLATE

POINTEUR

INDEX

C1 à C32767

L1 à L4

pas de form at

FB1 à FB31

SFB

DFB

EFB

DPS1-DPS31.q (**)

DPU1-DPU 31.q (**)

CARACTERE HEXADECIMAL

HEXADECIM AL

H1 à H32767

X1 à X32767

SIGN E SEPARE A GAUCHE

SIGNE SUPERPO SE A GAUCHE

SIGNE SEPARE A DROITE

SIGN E SUPERPO SE A DRO ITE

DUSLO 1 à D USLO30.q (**)

DUSTS1 à DUSTS30.q (**)

DUSTO 1 à D USTO 30.q (**)

DUU1 à DUU30.q (**)

DONNEES

ARITHMETIQUES

CO DE RETOUR RC

Le form at X (hexadécim al) peut s'utiliser pour tous les types de données, sous la form e Xn, n étant un nom bre d'octets.

(*)

(**) q est le nom bre de chiff res après la m arque décim ale im plicite.

Page 194: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

B-6 47 F2 15UP Rev02

Page 195: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 C-1

C. Constantes, affectations, comparaisons

Cette annexe explique les comparaisons et affectations entre données de typesdifférents. Elle comprend également un tableau indiquant la syntaxe des constantes etdes littéraux en PCF.

Page 196: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

C-2 47 F2 15UP Rev02

Table C-1. Syntaxe des constantes et littéraux

(*) le nom bre de ca ractères he xadécimaux d'une c onstante hexadécim ale doit être pair.

T YPE DE CO NS T AN TE S SYNT AXE

|||

EDQ

|||

|||

|||

|||

[+ ]

[-]

entie rnb. fract.à virgulef lot tan te

en tie rnb. f rac t.à virguleflottante

||||

||||

||||

||||

( ),

XH

||

||

||||

||||

||||

||||

"carhexa[carhexa]..."

0 [0]" ..."B 1 [1]

| [ + ]

| [-]

[entier] . [chiffre] ...

nombre chiffre ... fractionnaire

| ch iff re [ch if fre] ...

EXEM PLE S

0 -10 +7 3

17.3 -0 .7 .42

1.32E2 1.28Q-2

(1 .2,2 )(1 .45 ,-2E 4 )(0 ,-1 )

"ABC " "XYZ"C

ENTIER

EN VIRGULE FLOTTANTE

COMPLEXE

CARACTERES

HEXADECIMAL

CHAINE DE BITS

POINTEUR

LOGIQUE

"F 2"X"1 234AB"H

0 "B " 10 1 "B

/8 .12 .3F/DT/R3 /8.12 .3F/IT/9.8 .7FF F/R2/8 .12 .67A/R1/9 .12 .F FF F

.T . .F .

NOM BRE F RACTIONNAIREDECIM AL

||||||

||||||

[ /DIRECT][/DT]

[ / INDIRECT][/IT]

||||||

||||||

[/R1]

[/R1][/R3]

[/R0]

/stn .ste .sra

"caractère-quelconque[caractère-quelconque]..."[C ]

. .||||

||||

T

F

Page 197: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Constantes, affectations, comparaisons

47 F2 15UP Rev02 C-3

AFFECTATIONS ET COMPARAISONS ENTRE DONNEES DE TYPES DIFFERENTS

Les affectations et les comparaisons s'utilisent dans la commande CHANGE, dans laclause IF et dans les expressions de données de type logique. En général, lesaffectations et comparaisons ne sont autorisées qu'entre données de même type.Toutefois, dans le cas de données numériques, toutes les comparaisons sont possibles.Les affectations ont lieu quant à elles conformément à la hiérarchie suivante (de haut enbas):

• binaire logique

• décimal non signé

• décimal signé

• binaire en virgule flottante

Il faut tenir compte du fait que certaines incompatibilités peuvent provoquer des erreurs.Il est toujours possible d'affecter ou de comparer des variables incompatibles enimposant un format. Toutefois, le résultat n'est pas garanti.

Exemple:

DUMP ("CHAINE"#LB24)=32;

CHANGE DONNEE1#X8=DONNEE2#X8;

Page 198: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

C-4 47 F2 15UP Rev02

Page 199: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 g-1

Glossaire

Allègement (Stripping)

L'"allègement" d'un CU consiste à en supprimer les informations de gestion nécessairesà sa mise au point en mode symbolique. La commande SPLIT_CU permet cet"allègement" sous IOF.

Commande (Command)

Une commande est une requête soumise au processeur PCF au moment de l'exécution.

CU (Compile Unit)

Unité de compilation.

CU MAP

Liste des informations nécessaires à la mise au point en mode symbolique. Cette listeest générée au moment de la compilation et utilisée par PCF lors de l'exécution.

Désassemblage (Disassembly)

Indique la conversion d'une instruction en code machine en instruction non assembleuréquivalente (NAL). PCF peut convertir des instructions machine en leur équivalent NAL.

Liste des points d'intervention (Action point list)

Elle précise le moment où une commande PCF sera mise en oeuvre.

Mode pas à pas (Stepping)

Dans ce mode, le programme peut être analysé à chaque "pas" de son exécution. Pourla mise au point en adressage effectif, le "pas" se situe au niveau de chaque instruction;pour la mise au point en mode symbolique ou semi-symbolique, il se situe au niveau dechaque ligne. Sous PCF, la commande PAUSE permet d'obtenir la mise au point pas àpas.

Page 200: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

g-2 47 F2 15UP Rev02

Opérateur adresse (Address Operator)

L'opérateur adresse se présente sous la forme d'un & et permet de trouver l'adresseréelle d'une référence symbolique ou semi-symbolique.

Opérateur d'indirection (Typed point operator)

L'opérateur d'indirection (adressage indirect) se présente sous la forme d'un "*" et signaleun adressage indirect vers une variable de type.

Variables locales (Local variables)

Des variables locales sont internes à une procédure déterminée et sont rangées dans lapile. PCF peut afficher les valeur courantes de toutes les variables locales de laprocédure en cours.

Page 201: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

47 F2 15UP Rev02 i-1

Index

A

Abréviationcommandes PCF 2-1

Adressageeffectif 4-1indirect 14-5indirect par registre 14-7semi-symbolique 5-1semi-symbolique direct 5-3, 15-2symbolique 3-1

Adressage effectifexemple de mise au point 14-10mise au point en~ 14-1

Adresse mémoire 4-1, 5-1Agrégats 3-4Allègement

de CU 20-2Appel de PCF

par TRACE PRINT 10-1par TRACE SEND 10-2

B

Bloc (en langage C) 19-6

C

ClauseIF 3-11, 4-6, 5-7Quand 3-1Quoi 3-1

COBOLexemple de session de mise au point 11-6littéraux 11-4référence aux instructions ~ 11-5types de variables 11-1

Commande

~s dans fichier disqueséquentiel catalogué 7-2~s dans fichier disque séquentiel noncatalogué 7-2~s dans unité SL cataloguée 7-3~s dans unité SL non cataloguée 7-2~s sur cartes 7-1SPLIT_CU 20-3

Commande PCFliste de numéros 3-2, 4-2, 5-2

Commande PCFAPPLY 6-2Commande PCFBEGIN 6-4Commande PCFCHANGE 6-6Commande PCFCHECKPOINT 6-8Commande PCFCULIB1/2/3 6-9Commande PCFDISPLAY 6-10Commande PCFDSR 6-11Commande PCFDUMP 6-12Commande PCFEND 6-14Commande PCFEXEC 6-16Commande PCFFSE 6-18Commande PCFGOTO 6-19Commande PCFINLIB1/2/3 6-20Commande PCFKILL 6-21Commande PCFLIB 6-23Commande PCFLIST 6-24Commande PCFOUTPUT 6-25Commande PCFPAUSE 6-27Commande PCFRECOVER 6-29Commande PCFRESUME 6-30Commande PCFSUSPEND 6-30Commande PCFTRACE 6-32Commande PCFWHERE 6-34Commandes PCF

abréviations 2-1syntaxe 2-1

Compilation 1-3Compte rendu

d'exécution 18-2de traduction 18-1

Page 202: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

i-2 47 F2 15UP Rev02

Compte rendu d'exécution 16-3, 17-3~ sous TDS 18-1en interactif 17-1en télétraitement par lots 17-1traitement par lots 16-1

Compte rendu de traduction 16-2Constante 3-2, 4-2, 5-3

~s FORTRAN 12-2~s GPL 13-2

D

Déclaration de données B-1Désassemblage 4-6Désassembleur NAL 4-6Dialogue utilisateur

messages et préfixes PCF 17-1

E

Effectifadressage 4-1

Etiquette 3-8Exécution 1-3Expression

/COUNT 3-11, 4-6, 5-7/SEV 3-11, 4-6, 5-7

Expression de donnée 3-2, 5-2Expression de données 4-2

F

Format 3-6code des ~s B-1syntaxe des ~s B-1

FORTRANconstantes 12-2exemple de session de mise au point 12-4référence aux instructions ~ 12-3types de variables 12-1

G

GPLconstantes 13-2exemple de session de mise au point 13-6référence aux instructions ~ 13-4types de variables 13-1

I

Interactifappel de PCF 8-1

Interruptiontraitement des ~s (en interactif) 8-4traitement des ~s (en télétraitement parlots) 9-5

L

Langage Cchaînes de caractères 19-4constantes 19-2constantes pointeur ou entrée 19-5crochets 19-7entiers 19-2énumération de variables 19-4exemple de session de mise au point 19-8nombres réels 19-4notion de bloc 19-6pointeur d'indirection 19-2référence aux instructions en ~ 19-7types de variables 19-1utilisation de majuscules et minuscules19-8variables énumérées 19-4

Littéraux~ COBOL 11-4

Longueur de données B-1

Page 203: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Index

47 F2 15UP Rev02 i-3

M

Menus GCL~ et messages de guidage 17-4

Messages de guidagemenus GCL et ~ 17-4

Messages et préfixes PCF~ et dialogue utilisateur 17-1

Mise au point~ en adressage effectif 14-1~ en adressage semi-symbolique 15-1définition d'une session (interactif) 8-1déroulement de la session (interactif) 8-2déroulement de la session(télétraitement par lots) 9-4exemple de ~ enadressage effectif 14-10exemple de session COBOL 11-6exemple de session en langage C 19-8exemple de session FORTRAN 12-4exemple de session GPL 13-6lancement de lasession (télétraitement par lots) 9-3mode interactif 1-4pas à pas 3-11, 4-4, 5-6préparation d'unesession (télétraitement par lots) 9-1programmes COBOL 11-1programmes FORTRAN 12-1programmes GPL 13-1télétraitement par lots 1-5traitement par lots 1-4traitement transactionnel 1-6

Mode interactifmise au point 1-4

Module chargeableproblèmes particuliersaux ~s de grande taille 20-1traitement des ~s de grande taille 20-2

N

Nom symbolique 5-5Notation ISN

offset 14-9

O

Opérateur 3-6, 4-3, 5-5adresse 3-7arithmétique 3-7, 4-4, 5-6logique 3-7, 4-4, 5-6

Option MAPvoir Relevé d'implantation: 14-1, 15-1Ordre CONSOLE 9-1

P

Parenthèses 3-6, 4-3, 5-5PCF

affectations C-1appel en interactif 8-1appel en télétraitement par lots 9-1appel en traitement par lots 7-1appel en traitement transactionnel 10-1comparaisons C-1description générale 1-2lancement immédiat (interactif) 8-4lancement immédiat(télétraitement par lots) 9-5limites de taille 20-4syntaxe de constantes C-2syntaxe des littéraux C-2utilisation 1-3

Phase~ d'exécution 1-3~ de compilation 1-3

Plage d'instructions 3-9Point d'intervention

liste des ~ 3-8liste des ~s 4-4, 5-6nom de ~ symbolique 3-10

Pointeur d'indirectionen langage C 19-2

Programmes COBOLmise au point 11-1

Programmes FORTRANmise au point 12-1

Programmes GPLmise au point 13-1

R

Référenceaux instructions COBOL 11-5aux instructions en langage C 19-7aux instructions FORTRAN 12-3aux instructions GPL 13-4

Référence de donnée 3-2, 4-3, 5-3Relevé d'implantation 14-1, 15-1

Page 204: Préparation des programmes PCF Guide de l'utilisateursupport.bull.com/.../doc-com/docf/g/47X257TN23-mar2005/doc/15up… · Sujet : Ce manuel combine un guide d'utilisateur et un

Aide à la mise au point (PCF)

i-4 47 F2 15UP Rev02

S

Semi-symboliqueadressage 5-1mise au point en mode ~ 15-1

Symboliqueadressage 3-1

Syntaxecommandes PCF 2-1

Syntaxe PCFcommandes A-2niveau inférieur A-6niveau intermédiaire A-4niveau supérieur A-1points d'intervention A-5récapitulatif A-1références de données A-5

T

Tableélément 3-3sous-ensemble 3-4

Tableauélément 3-3sous-ensemble 3-4

TDScompte rendu d'exécution sous ~ 18-1

Télétraitement par lotsappel de PCF 9-1mise au point 1-5

Textes HELPen interactif 8-2en télétraitement par lots 9-4

Traitement par lotsappel de PCF 7-1compte rendu d'exécution 16-1mise au point 1-4

Traitement transactionnelappel de PCF 10-1mise au point 1-6

Type de variables~ COBOL 11-1~ FORTRAN 12-1~ GPL 13-1

Types de variablesen langage C 19-1

V

Variableaffichage de ~s locales 3-6basée (GPL) 3-5non basée 3-5simple 3-3

Variable basée 13-5