Sunteți pe pagina 1din 19

Compiling and Debugging Cobol/400 programs

AS/400 Programming Development Manager (PDM)

Select one of the following:

1. Work with libraries


2. Work with objects
3. Work with members
4. Work with projects
5. Work with groups
6. Work with parts

9. Work with user-defined options

Selection or command
===> 3

F3=Exit F4=Prompt F9=Retrieve F10=Command entry


F12=Cancel F18=Change defaults
(C) COPYRIGHT IBM CORP. 1981, 1998.

Start PDM (using STRPDM) and when the above screen is displayed select option 3
and press Enter.
Specify Members to Work With

Type choices, press Enter.

File . . . . . . . . . . QCBLSRC Name, F4 for list

Library . . . . . . . . MOHAMED *LIBL, *CURLIB, name

Member:
Name . . . . . . . . . *ALL *ALL, name, *generic*
Type . . . . . . . . . *ALL *ALL, type, *generic*, *BLANK

F3=Exit F4=Prompt F5=Refresh F12=Cancel

Enter your library name (instead of library MOHAMED) and then press Enter.
Work with Members Using PDM ODIN

File . . . . . . QCBLSRC
Library . . . . MOHAMED Position to . . . . .

Type options, press Enter.


2=Edit 3=Copy 4=Delete 5=Display 6=Print 7=Rename
8=Display description 9=Save 13=Change text 14=Compile 15=Create module...

Opt Member Type Text


CBL344P CBL Intro to Cobol programming
CBL344PN CBL Intro to Cobol programming
14 SENIOR CBL The first Cobol program
TUITION3 CBL Tuition program (Initial with stubs)
TUITION5 CBL Tuition program (Completed)

Bottom
Parameters or command
===>
F3=Exit F4=Prompt F5=Refresh F6=Create
F9=Retrieve F10=Command entry F23=More options F24=More keys

As an example I choose to compile program SENIOR. To do that enter 14 and then


press F4.
Create COBOL Program (CRTCBLPGM)

Type choices, press Enter.

Program . . . . . . . . . . . . > SENIOR Name, *PGMID


Library . . . . . . . . . . . > MOHAMED Name, *CURLIB
Source file . . . . . . . . . . > QCBLSRC Name
Library . . . . . . . . . . . > MOHAMED Name, *LIBL, *CURLIB
Source member . . . . . . . . . > SENIOR Name, *PGM
Generation severity level . . . 29 0-29
Text 'description' . . . . . . . *SRCMBRTXT

Additional Parameters

Replace program . . . . . . . . > *NO *NO, *YES

Bottom
F3=Exit F4=Prompt F5=Refresh F10=Additional parameters F12=Cancel
F13=How to use this display F24=More keys

In order to use the Interactive Source Debugger later on, you have to change the
compile options in this screen. To do that press F10.
Create COBOL Program (CRTCBLPGM)

Type choices, press Enter.

Program . . . . . . . . . . . . > SENIOR Name, *PGMID


Library . . . . . . . . . . . > MOHAMED Name, *CURLIB
Source file . . . . . . . . . . > QCBLSRC Name
Library . . . . . . . . . . . > MOHAMED Name, *LIBL, *CURLIB
Source member . . . . . . . . . > SENIOR Name, *PGM
Generation severity level . . . 29 0-29
Text 'description' . . . . . . . *SRCMBRTXT

Additional Parameters

Source listing options . . . . . *SRCDBG *SOURCE, *NOSOURCE, *SRC...


+ for more values
Generation options . . . . . . . *NOLIST, *LIST, *NOXREF...
+ for more values

More...
F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display
F24=More keys

Enter *SRCDBG as the Source listings option and then press Enter.
Confirm Compile of Member

The following object already exists for the compile operation:

Object which exists . . . . . . . . : SENIOR


Library . . . . . . . . . . . . . : MOHAMED
Object type . . . . . . . . . . . . : *PGM

Member to compile . . . . . . . . . : SENIOR


File . . . . . . . . . . . . . . . . : QLBLSRC
Library . . . . . . . . . . . . . : MOHAMED

Type choice, press Enter.


Press F12=Cancel to return and not perform the compile operation.

Delete existing object . . . . . . . . Y Y=Yes, N=No

F12=Cancel

To replace the old compiled version of the program enter ‘Y’ and then press Enter.
Work with Members Using PDM ODIN

File . . . . . . QCBLSRC
Library . . . . MOHAMED Position to . . . . .

Type options, press Enter.


2=Edit 3=Copy 4=Delete 5=Display 6=Print 7=Rename
8=Display description 9=Save 13=Change text 14=Compile 15=Create module...

Opt Member Type Text


SENIOR CBL The first Cobol program
TUITION3 CBL Tuition program (Initial with stubs)
TUITION5 CBL Tuition program (Completed)

Bottom
Parameters or command
===>
F3=Exit F4=Prompt F5=Refresh F6=Create
F9=Retrieve F10=Command entry F23=More options F24=More keys
The compile of member SENIOR was submitted to batch. +

The compilation of the program will be submitted to batch.


Work with Members Using PDM ODIN

File . . . . . . QCBLSRC
Library . . . . MOHAMED Position to . . . . .

Type options, press Enter.


2=Edit 3=Copy 4=Delete 5=Display 6=Print 7=Rename
8=Display description 9=Save 13=Change text 14=Compile 15=Create module...

Opt Member Type Text


SENIOR CBL The first Cobol program
TUITION3 CBL Tuition program (Initial with stubs)
TUITION5 CBL Tuition program (Completed)

Bottom
Parameters or command
===> WRKSBMJOB *JOB
F3=Exit F4=Prompt F5=Refresh F6=Create
F9=Retrieve F10=Command entry F23=More options F24=More keys
Job 342470/MOHAMED/SENIOR submitted to job queue QBATCH in library QGPL.

To check whether the program compiled successfully enter WRKSBMJOB *JOB on


the command line as shown and then press Enter.
Work with Submitted Jobs ODIN
10/03/99 17:53:13
Submitted from . . . . . . . . : *JOB

Type options, press Enter.


2=Change 3=Hold 4=End 5=Work with 6=Release 7=Display message
8=Work with spooled files

Opt Job User Type -----Status----- Function


8 SENIOR MOHAMED BATCH OUTQ

Bottom
Parameters or command
===>
F3=Exit F4=Prompt F5=Refresh F9=Retrieve F11=Display schedule data
F12=Cancel

Enter option 8 to display the compiled spool file.


Work with Job Spooled Files

Job: SENIOR User: MOHAMED Number: 342470

Type options, press Enter.


1=Send 2=Change 3=Hold 4=Delete 5=Display 6=Release 7=Messages
8=Attributes 9=Work with printing status

Device or Total Current


Opt File Queue User Data Status Pages Page Copies
5 SENIOR MOHAMED RDY 5 1

Bottom
Parameters for options 1, 2, 3 or command
===>
F3=Exit F10=View 3 F11=View 2 F12=Cancel F22=Printers F24=More keys

To view the compiled program spool file enter option 5 and press Enter.
Display Spooled File
File . . . . . : SENIOR Page/Line 1/1
Control . . . . . B Columns 1 - 130
Find . . . . . . _____________________________
*...
+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+....0....+....1....+....2....+....3
5769CB1 V4R2M0 980228 IBM COBOL/400 MOHAMED/SENIOR
ODIN 10/03/99 17:45:53 Page 1
Program . . . . . . . . . . . . . . : SENIOR
Library . . . . . . . . . . . . . : MOHAMED
Source file . . . . . . . . . . . . : QLBLSRC
Library . . . . . . . . . . . . . : MOHAMED
Source member . . . . . . . . . . . : SENIOR 09/11/99 17:22:52
Generation severity level . . . . . : 29
Text 'description' . . . . . . . . . : The first Cobol program
Source listing options . . . . . . . : *SRCDBG
Generation options . . . . . . . . . : *NONE
Conversion options . . . . . . . . . : *NONE
Sort sequence . . . . . . . . . . . : *HEX
Library . . . . . . . . . . . . . :
Language identifier . . . . . . . . : *JOBRUN
Message limit:
Number of messages . . . . . . . . : *NOMAX
Message limit severity . . . . . . : 29
Print file . . . . . . . . . . . . . : QSYSPRT
Library . . . . . . . . . . . . . : *LIBL
More...
F3=Exit F12=Cancel F19=Left F20=Right F24=More keys

Enter B in the control field and press Enter to go to the bottom of the compile
listing.
Display Spooled File
File . . . . . : SENIOR Page/Line 4/34
Control . . . . . B Columns 1 - 130
Find . . . . . .
*...
+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+....0....+....1....+....2....+....3
* 44 MSGID: LBL0014 SEVERITY: 10 SEQNBR: 005900
Message . . . . : Delimiter for literal is not correct.
Literal accepted.
* 49 MSGID: LBL0014 SEVERITY: 10 SEQNBR: 006500
Message . . . . : Delimiter for literal is not correct.
Literal accepted.
* * * * * E N D O F M E S SAG E S * * * * *
Message Summary
Total Info(0-4) Warning(5-19) Error(20-29) Severe(30-39) Terminal(40-99)
9 2 5 2 0 0
Source records read . . . . . . . . : 66
Copy records read . . . . . . . . . : 0
Copy members processed . . . . . . : 0
Sequence errors . . . . . . . . . . : 0
Highest severity message issued . . : 20
LBL0901 00 Program SENIOR created in library MOHAMED on 10/03/99 17:46:22.
5769CB1 V4R2M0 980228 AS/400 COBOL Messages MOHAMED/SENIOR ODIN 10/03/99 17:45:53 Page 5
STMT
* * * * * E N D O F C O M P I LAT I O N * * * * *

Bottom
F3=Exit F12=Cancel F19=Left F20=Right F24=More keys

The first highlighted line shows the number and type of errors found. The second
highlighted line states that the compilation was successful and that the program was
created in library MOHAMED (in your case the program must be created in your
own library).
Display Spooled File
File . . . . . : SENIOR Page/Line 4/8
Control . . . . . Columns 1 - 130
Find . . . . . . _________________
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+....0....+....1....+....2....+....3
clause. System-name QPRINT assumed.
* 13 MSGID: LBL0116 SEVERITY: 20 SEQNBR: 001500
Message . . . . : Largest record description does not match
RECORD CONTAINS clause for file. '42' assumed.
Enter * 13 MSGID: LBL0117 SEVERITY: 20 SEQNBR: 001500
Statement Message . . . . : Smallest record description '42' characters.
number Does not match RECORD CONTAINS. '42' assumed.
* 13 MSGID: LBL0650 SEVERITY: 00 SEQNBR: 001500
and press Message . . . . : Blocking/Deblocking for file 'STUDENT-FILE'
F16 (shift will be performed by compiler-generated code.
F4) to * 28 MSGID: LBL0014 SEVERITY: 10 SEQNBR: 003200
Message . . . . : Delimiter for literal is not correct.
search for Literal accepted.
the * 37 MSGID: LBL0014 SEVERITY: 10 SEQNBR: 004500
statement. Message . . . . : Delimiter for literal is not correct.
Literal accepted.
* 39 MSGID: LBL0014 SEVERITY: 10 SEQNBR: 004900
Message . . . . : Delimiter for literal is not correct.
Literal accepted.
More...
F3=Exit F12=Cancel F19=Left F20=Right F24=More keys

If you have errors that exceed severity level 29 then your compile will fail and you
have to scroll up to look at the error messages generated.
Work with Job Spooled Files

Job: SENIOR User: MOHAMED Number: 342470

Type options, press Enter.


1=Send 2=Change 3=Hold 4=Delete 5=Display 6=Release 7=Messages
8=Attributes 9=Work with printing status

Device or Total Current


Opt File Queue User Data Status Pages Page Copies
SENIOR MOHAMED RDY 5 1

Bottom
Parameters for options 1, 2, 3 or command
===> STRISDB
F3=Exit F10=View 3 F11=View 2 F12=Cancel F22=Printers F24=More keys

If the compile is successful then you can run the Interactive Source Debugger
(STRISDB) and press Enter.
Start ISDB (STRISDB)

Type choices, press Enter.

Program . . . . . . . . . . . . > SENIOR Name


Library . . . . . . . . . . . > MOHAMED Name, *CURLIB, *LIBL
Update production files . . . . *NO *YES, *NO
Invoke program . . . . . . . . . *YES *YES, *NO, *CMD

Bottom
F3=Exit F4=Prompt F5=Refresh F10=Additional parameters F12=Cancel
F13=How to use this display F24=More keys

Enter the program name and library as shown (make sure the library is your
library name). If your program is called directly (i.e. you are not using a CL
program or another program to call your program) then enter *YES in the Invoke
program field.
Start ISDB (STRISDB)

Type choices, press Enter.

Program . . . . . . . . . . . . > SENIOR Name


Library . . . . . . . . . . . > MOHAMED Name, *CURLIB, *LIBL
Update production files . . . . *NO *YES, *NO
Invoke program . . . . . . . . . *YES *YES, *NO, *CMD
Parameters for call . . . . . . ____________________________________________
______
+ for more values ____________________________________________
______

Bottom
F3=Exit F4=Prompt F5=Refresh F10=Additional parameters F12=Cancel
F13=How to use this display F24=More keys

Press Enter.
Debug Goto Program Options Help
MOHAMED/SENIOR:/0001 ISDB/400 More: + >
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. SENIOR.
000300 AUTHOR. ROBERT GRAUER.
000400
000500 ENVIRONMENT DIVISION.
000600 INPUT-OUTPUT SECTION.
000700 FILE-CONTROL.
000800 SELECT STUDENT-FILE ASSIGN TO DATABASE-SENIORDAT
000900 ORGANIZATION IS SEQUENTIAL.
001000 SELECT PRINT-FILE
001100 ASSIGN TO PRINTER.
001200
001300 DATA DIVISION.
001400 FILE SECTION.
001500 FD STUDENT-FILE
001600 RECORD CONTAINS 43 CHARACTERS
001700 DATA RECORD IS STUDENT-IN.
001800 01 STUDENT-IN.
ISDB ===>
F3=Exit F5=Step F6=Break F11=Display variable
F12=Cancel F17=Run F23=Change variable F24=More keys
(C) COPYRIGHT IBM CORP. 1993, 1997.

You are now in the Interactive debug mode. Use the Function Keys (shown
highlighted) to debug your program. You can use the F1 help function to read the
help topics.
Debug Goto Program Options Help
MOHAMED/SENIOR:4200.1 ISDB/400 More: - + >
004200 OPEN INPUT STUDENT-FILE
004300 OUTPUT PRINT-FILE.
004400 READ STUDENT-FILE
004500 AT END MOVE 'NO' TO DATA-REMAINS-SWITCH
004600 END-READ.
004700 PERFORM WRITE-HEADING-LINE.
004800 PERFORM PROCESS-RECORDS
004900 UNTIL DATA-REMAINS-SWITCH = 'NO'.
005000 CLOSE STUDENT-FILE
005100 PRINT-FILE.
005200 STOP RUN.
005300
005400 WRITE-HEADING-LINE.
005500 MOVE HEADING-LINE TO PRINT-LINE.
005600 WRITE PRINT-LINE.
005700
005800 PROCESS-RECORDS.
005900 IF STU-CREDITS > 110 AND STU-MAJOR = 'ENGINEERING'
ISDB ===>
F3=Exit F5=Step F6=Break F11=Display variable
F12=Cancel F17=Run F23=Change variable F24=More keys
Stopped at statement 4200.1.

Note: The debugging starts at the first statement of the first paragraph of the
Procedure Division.
Debug Goto Program Options Help
MOHAMED/SENIOR:4200.1 ISDB/400 More: - + >
004200 OPEN INPUT STUDENT-FILE
004300 OUTPUT PRINT-FILE.
004400 READ STUDENT-FILE
004500 .............................................
004600 : Cancel ISDB :
004700 : :
004800 : You have requested to cancel ISDB. :
004900 : :
005000 : If you are servicing another :
005100 : job, enter the ENDISDB command :
005200 : afterward, to end debugging. :
005300 : :
005400 WR : Cancel ISDB . . . . . . 1 1=Yes, 2=No :
005500 : :
005600 : F12=Cancel :
005700 :...........................................:
005800 PROCESS-RECORDS.
005900 IF STU-CREDITS > 110 AND STU-MAJOR = 'ENGINEERING'
ISDB ===>
F3=Exit F5=Step F6=Break F11=Display variable
F12=Cancel F17=Run F23=Change variable F24=More keys
Stopped at statement 4200.1.

To exit the debug session press F3 and enter 1 to Cancel ISDB.

S-ar putea să vă placă și