Rational Developer for System z, version 7.6.1

Création d'un programme assembleur et débogage à l'aide du débogueur symbolique

Vous voudrez peut-être construire un programme assembleur et le déboguer à l'aide du débogueur symbolique en transmettant les valeurs aux variables spécifiées par l'utilisateur dans la procédure JCL.
Copiez la procédure d'assemblage ELAXFASM vers une autre procédure nommée ASMDEBUG. Modifiez la procédure ASMDEBUG en ajoutant l'étape XTRACT d'extraction des informations de débogage du fichier ADATA créé à l'étape d'assemblage. L'exemple suivant montre la procédure ASMDEBUG :
//*************************************************************
//*                                                           *
//* ASMDEBUG -- SAMPLE PROCEDURE FOR ASSEMBLING HIGH LEVEL    *
//*             ASSEMBLER  PROGRAMS AND DO THE XTRACT STEP    *
//*             FOR DOING THE SYMBOLIC ASSEMBLER DEBUG.       *
//*                                                           *
//* Licensed Materials - Property of IBM                      *
//* 5724-B67                                                  *
//* (C) Copyright IBM Corp. 2003                              *
//*                                                           *
//* WebSphere Studio Enterprise Developer Options for z/OS    *
//*                                                           *
//*************************************************************
//*                                                           *
//* CUSTOMIZE THIS PROCEDURE AS PER YOUR SITE REQUIREMENTS    *
//*                                                           *
//* THIS PROCEDURE WILL BE USED BY WSED TO ASSEMBLE HIGH      *
//* LEVEL ASSEMBLER PROGRAMS.                                 *
//*                                                           *
//* CUSTOMIZATION TASKS:                                      *
//*                                                           *
//*    1) MODIFY THE LNGPRFX VALUE AS PER YOUR SITE           *
//*       REQUIREMENTS. DEFAULT VALUE IS 'SYS1'               *
//*                                                           *
//* ADDITIONAL COMMENTS:                                      *
//*                                                           *
//*       SYSIN, SYSLIN AND SYSLIB DD CARDS WILL BE PROVIDED  *
//*       BY THE GENERATION CODE.                             *
//*                                                           *
//*************************************************************
//ASMDEBUG PROC  LNGPRFX='SYS1'
//ASM EXEC PGM=ASMA90,REGION=2048K,
//             PARM=('TEST',
//             'ADATA',
//             'LIST')
//STEPLIB DD DSN=&LNGPRFX..LINKLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLIN   DD  DUMMY
//SYSUT1   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//SYSUT2   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//SYSUT3   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//SYSUT4   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//SYSUT5   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//SYSUT6   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//SYSUT7   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))
//*
//SYSTERM  DD SYSOUT=*
//SYSADATA DD DSNAME=&ADATADS(&MEM),DISP=SHR
//XTRACT  EXEC PGM=EQALANGX,REGION=32M,
//   PARM='&MEM (ASM ERROR OFT IDILANGX FAULT'
//SYSADATA DD DSNAME=&ADATADS(&MEM),DISP=SHR
//IDILANGX DD DSNAME=&LANGXDX(&MEM),DISP=SHR
//*
Assurez-vous de définir et d'établir la connexion à un système distant et de créer un sous-projet MVS.
  1. Sur la page de propriétés Paramètres de l'assembleur, sélectionnez l'onglet Procédures et étapes.
  2. Sélectionnez l'étape ASM, cliquez sur Modifier une étape et définissez les options d'assemblage suivantes :
    Option d'assemblage Valeur
    Nom de procédure d'assemblage ASMDEBUG
    Nom d'étape de procédure d'assemblage ASM
    Fichier de paquet de cartes objet HLQ.ASMOBJS.OBJ
    Macro-bibliothèques SYS1.MACLIB CEEV2R1M0.SCEEMAC
  3. Cliquez sur OK pour revenir à Paramètres Assembleur.
  4. Sélectionnez l'onglet Substitution JCL. Cliquez sur le bouton Ajouter une variable utilisateur afin de définir les variables utilisateur suivantes :
    Nom de la variable Valeur de la variable
    LANGXDS HLQ.EQALANGX
    ADATADS HLQ.ASM.ADATA
  5. Cliquez sur le bouton Insérer une variable globale afin d'ajouter la variable MEM.
  6. Ouvrez la page de propriétés Point d'entrée de l'application.
  7. Sélectionnez le bouton d'option pour l'assembleur de haut niveau. Entrez CEESTART. Enregistrez les modifications apportées aux propriétés.
  8. Ajoutez la source TESTDBG au sous-projet MVS (la source est affichée au bas de la fenêtre.)
  9. Construisez le projet pour générer TESTDBG.exe dans le fichier de chargement indiqué. (Pour afficher l'Emplacement du module de chargement par défaut, ouvrez les Propriétés du sous-projet sur la page Options de liens, sélectionnez l'étape Lien et cliquez sur Modifier une étape.)
  10. Cliquez avec le bouton droit sur TESTDBG.exe, puis cliquez sur Déboguer l'application. Le débogueur démarre.
  11. Ouvrez la console de débogage et saisissez LDD TESTDBG dans la ligne de commande.
  12. Suivez les étapes pour déboguer le code de l'assembleur.

Pendant le processus de construction, lorsque le JCL est généré pour la construction, une instruction SET est créée en début du travail pour les variables spécifiées sur la page Substitution JCL.

Exemple de programme assembleur pour la construction et le débogage

Le programme assembleur doit être compatible LE. Source exemple :
TESTDBG  CEEENTRY PPA=MAINPPA,AUTO=WORKSIZE                             
         USING    WORKAREA,R13                                          
*                                                                       
         LA   R02,STRT_MSG                                              
         LA   R03,DEST                                                  
         LA   R04,FBCODE                                                
         STM  R02,R04,PLIST                                             
         LA   R01,PLIST                                                 
         L    R15,MOUT                                                  
         BALR R14,R15                                                   
*                                                                       
         PACK PCKA,ZNA                                                  
         PACK PCKB,ZNB                                                  
         PACK PCKC,ZNC                                                  
         ZAP  PCKSUM,PCKA                                               
         AP   PCKSUM,PCKB                                               
         AP   PCKSUM,PCKC                                               
         MVC  OUTSUM,SUMMSK                                             
         ED   OUTSUM,PCKSUM                                             
         MVC  SUMMSG+1(8),OUTSUM                                        
         MVC  LINE_ST,SUMMSG                                            
*                                                                       
         LA   R02,LINE_MSG                                              
         LA   R03,DEST                                                  
         LA   R04,FBCODE                                                
         STM  R02,R04,PLIST                                             
         LA   R01,PLIST                                                 
         L    R15,MOUT                                                  
         BALR R14,R15                                                   
*                                                                       
         LA   R02,DONE_MSG                                              
         LA   R03,DEST                                                  
         LA   R04,FBCODE                                                
         STM  R02,R04,PLIST                                             
         LA   R01,PLIST                                                 
         L    R15,MOUT                                                  
         BALR R14,R15                                                   
*                                                                       
         CEETERM  RC=0                                                  
* ==============================================================        
*  Constantes et variables                                              
* ==============================================================        
ZLEN     EQU 5                                                          
PLEN     EQU ZLEN/2+1                                                   
*                                                                       
SUMMSG   DC  C'(xxxxxxxx) -- The sum    '                               
SUMMSK   DC  X'4020202020202120'                                        
ZNA      DC  ZL5'100'                                                   
ZNB      DC  ZL5'150'                                                   
ZNC      DC  ZL5'50'                                                    
*                                                                       
PCKA     DS  PL(PLEN)                                                   
PCKB     DS  PL(PLEN)                                                   
PCKC     DS  PL(PLEN)                                                   
PCKSUM   DS  PL(PLEN+1)                                                 
OUTSUM   DS  CL(L'SUMMSK)                                               
*                                                                       
MOUT     DC     V(CEEMOUT)        Service de message CEL               
*                                                                       
LINE_MSG DS     0F                                                      
         DC     AL2(LINE_END-LINE_ST)                                   
LINE_ST  DS     CL25                                                    
LINE_END EQU    *                                                       
*                                                                       
STRT_MSG DS     0F                                                      
         DC     AL2(STRT_END-STRT_ST)                                   
STRT_ST  DC     C'Starting the program.'                                
STRT_END EQU    *                                                       
*                                                                       
DONE_MSG DS     0F                                                      
         DC     AL2(DONE_END-DONE_ST)                                   
DONE_ST  DC     C'Terminating the program.'                             
DONE_END EQU    *                                                       
*                                                                       
DEST     DC     F'2'              La destination est le fichier MSGFILE        
*                                                                       
MAINPPA  CEEPPA                                                         
* ===================================================================   
*  Espace de travail et DSA                                                 
* ===================================================================   
WORKAREA DSECT                                                          
         ORG    *+CEEDSASZ                                              
PLIST    DS     0D                                                      
PARM1    DS     A                                                       
PARM2    DS     A                                                       
PARM3    DS     A                                                       
PARM4    DS     A                                                       
PARM5    DS     A                                                       
*                                                                       
FBCODE   DS     3F                                                      
*                                                                       
         DS     0D                                                      
WORKSIZE EQU    *-WORKAREA                                              
         CEEDSA                   Mappage de la zone d'enregistrement dynamique      
         CEECAA                   Mappage de la zone d'ancrage commune     
*                                                                       
R00      EQU   0                                                        
R01      EQU   1                                                        
R02      EQU   2                                                        
R03      EQU   3                                                        
R04      EQU   4                                                        
R05      EQU   5                                                        
R06      EQU   6                                                        
R07      EQU   7                                                        
R08      EQU   8                                                        
R09      EQU   9                                                        
R10      EQU   10                                                       
R11      EQU   11                                                       
R12      EQU   12                                                       
R13      EQU   13                                                       
R14      EQU   14                                                       
R15      EQU   15                                                       
         END   TESTDBG            

Conditions d'utilisation | Commentaires

Ce centre de documentation utilise la technologie Eclipse. (http://www.eclipse.org)