Presentation is loading. Please wait.

Presentation is loading. Please wait.

® IBM Software Group © 2011 IBM Corporation RDz Workbench – Debugging z/OS COBOL Applications Batch COBOL Debugging Workshop Jon Sayles, Rational System.

Similar presentations


Presentation on theme: "® IBM Software Group © 2011 IBM Corporation RDz Workbench – Debugging z/OS COBOL Applications Batch COBOL Debugging Workshop Jon Sayles, Rational System."— Presentation transcript:

1 ® IBM Software Group © 2011 IBM Corporation RDz Workbench – Debugging z/OS COBOL Applications Batch COBOL Debugging Workshop Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

2 2 Using this PowerPoint Slide Deck There are two types of slides in this PowerPoint: 1.Workshop slides:  These are slides that will help you master RDz through technical development techniques and hands-on exercises  Workshop slides have this character:  in the slide header –Note that some workshop slides have the word "Workshop" in the slide header –However all workshop slides have the  character in the slide header 2.Learning content:  Any slide that doesn't contain a  character in the slide header contains conceptual learning material –To be read for understanding –Often these slides are preparation for the workshop exercises that follow There are additional Powerpoint slides that contain deep RDz learning content, without exercises and without lab instructions  Ifyou want to learn more about any particular RDz topic, you can learn more about it from the Powerpoint slides.

3 3 Pre-Workshop Overview  You will use Debug Tool to test the SAM1 and SAM2 batch COBOL programs  Steps:  Allocate data sets  Modify the JCL for the compile and run stream JCL  Find your workstations:  I/P Address  Port#  Substitute those variables into the run steam JCL  Debug  Test out various Debug Tool options Ctrl+2  At any point, you can terminate your debug session by clicking the Red icon or pressing Ctrl+2  And you can re-submit the JCL again – to Debug (again)

4 4  Workshop – Preparing for the Workshop  Prerequisites:  Ensure the IBM Debug Tool is installed and configured on your z/OS  You may need to speak to one of your systems programmers about this  Ensure that you have a "real" I/P address (as opposed to a router-generated I/P address) for your workstation COBOL.VnRn.COBOL - COBOL.V3R4.COBOL  Ensure that you know the location (system library) of the COBOL compiler IGYCRCTL – typically found in: COBOL.VnRn.COBOL - Example: COBOL.V3R4.COBOL  Locate the files:  COBOL programs:  SAM1  SAM2  COBOL copybooks:  TRANREC  CUSTCOPY  JCL:  SAMCMPLK  XSAM  You will need access to a QSAM test data file: SAMFILE.TEST1.SAMFILE  This file is in the \data folder of your RDzClass.zip file – that you used to setup for these workshops. You will need to transfer the file to the mainframe, ensuring its DSORG/LRECL/BLKSIZE is maintained SAMFILE properties

5 5 You will need the following standard development libraries for Compile/Link-Edit: .xxx.COBOL – example: DDS0001.TEST.COBOL .xxx.COPYLIB – example: DDS0001.TEST.COPYLIB .xxx.LISTING – example: DDS0001.TEST.LISTING .xxx.OBJ – example: DDS0001.TEST.OBJ .xxx.LOAD – example: DDS0001.TEST.LOAD If you haven't already allocated these libraries, pleas allocate them now. Hint:  Specify characteristics by usage type:  Will allow you to select the correct DCB for the files  Give each dataset 5 primary and 5 secondary TRKS of disk space  Workshop – Allocate Data Sets

6 6  Workshop – SAM1 and SAM2 Code Review  Load both SAM1.cbl and SAM2.cbl into the editor – and review the logic in this typical z/OS data collections/editing/report writing pattern  Time permitting, learn a little bit about the programs you're going to debug, using a few of the RDz code analysis tools & techniques:  Multiple editing windows to study the logic, Program Control Flow, Perform Hierarchy, navigation techniques, Hover, etc.

7 7  Workshop – Compile SAM1 and SAM2  Steps (in SAMCMPLK.jcl): four  In all four job steps, modify the library names for:  COBOL compiler library  Your personal datasets  Submit the JCL  Go to the JES queue and check the return codes for each step  Optionally, expand your load library and ensure that there are members for SAM1 and SAM2  Note – this step requires you to have allocated all of the datasets referenced in the JCL (see prior slide) Don't forget the 2 nd LKED step

8 8  Switch to the Debug perspective  Click on the downward pointing triangle to the right of the little green listener tool, and:  Note the Port#  Select and copy the I/P address  Ensure that green listener tool is – in fact – green, and not red. If it's red (not listening) click it (once) to change it to green  Workshop – Obtain your I/P Address and Port# This is the I/P address you want!

9 9  Open XSAM.JCL and modify:  JOB card  You will have to enter your shop's specific JOB card parameters  Your test dataset names:  Load library  The SAMFILE dataset DSN //CUSTFILE DD DSN=… &%  Paste your copied IP address – between the & and %  Also verify (or change) the Port # to your RDz client listener port (recall from previous slide)  Submit the job: Yes Click Yes to enter the Debug Perspective  Workshop – Modify and Submit the Run JCL

10 10  Begin using the Debug Tool functions that you learned about in this section:  Press F5 – or click Step Into a few times – note that the Outline view synchronizes with your source  Right-click over variable in Variables – and select 2. Automonitor Previous – step a few more times  Hover over a variable in the PROCEDURE DIVISION  Try some find commands – in the ISPF command line area of SAM1.cob  Navigate around the source code using the Outline view  Press F6 – a few times. It will act the same as F5 until you get to a CALL statement  Workshop – Debug Techniques – Stepping  Hover over a variable

11 11  Change some values:  From the Variables tab:  Filter Locals > 0 ALL –What does this do?  Click inside a variable and change its value  Press  Enter to save your change  Change the representation of several fields to Hexadecimal  Try editing in Hex –Change a binary numeric field value to negative –Etc.  Workshop – Debug Techniques – Variables

12 12  From within Variables  Select Monitor Local Variable Monitors  Check the Monitors view  Experiment with:  Change representation  Change Value…  Show Type Names  Remove  Workshop – Debug Techniques – Monitors

13 13  Workshop – Monitors (more techniques)  From Monitors  Select Detached  Drag the Monitors view around to make the best use of "screen real estate"

14 14  Set and use breakpoints  Find the CALL to 'SAM2'  Add a breakpoint by either:  Double-clicking in the prefix area – or:  Right-click over the statement and select Add Breakpoint  Resume (F8) to the breakpoint  Click into 'SAM2'  RDz will take a few seconds to load SAM2  Debug into the program a few clicks  Press F7 – to return to 'SAM1'  Resume (F8) to the breakpoint  Press F6 – What does this do?  Answer – runs all of the code in SAM2, and stops at the Next Sequential Instruction after the call  Double-click on TRAN-KEY to select the field  Right-click and select: Add Watch Breakpoint  Resume (F8) until the value in TRAN-KEY changes, and the breakpoint causes your program to stop  Workshop – Debug Techniques – Breakpoints

15 15  Terminate your debug session  Submit XSAM JCL again  Remove all Breakpoints  Add a Breakpoint to the PERFORM 720… statement in 200-PROCESS-UPDATE-TRAN  Edit that Breakpoint, and make it conditional  At the wizard click Next >  Specify the following Expression:  Click Finish  Resume(F8) - you should stop at the conditional Breakpoint on line 404  Click the Debug Console view – to verify  Workshop – Debug Techniques – Breakpoints continued

16 16  Terminate your debug session  Submit XSAM JCL again  Remove all Breakpoints  From the Debug Console issue the following Debug Engine Command: set automonitor on log  Click Animated Step Into  Follow the trace in the Debug Console  Click Animated Step Into  Optional:  Right-click in the Debug Console and Export History – for your debug trace  Workshop – Debug Techniques – Breakpoints continued

17 17  Branching and testing  Use the Outline view to navigate to 730-READ-CUSTOMER-FILE  Right click on the EVALUATE statement and in the prefix area (on the left) select Jump to Location  What did this do?  Answer: Set the current instruction pointer to the line  Mouse over WS-CUSTFILE-STATUS and note its current value  Double-click WS-CUSTFILE-STATUS and select Monitor Expression  From the Monitors view, change the value of the field to 04  Step through the code, what happens?  Answer #1: Program execution "falls thru" – why?  Answer #2: Jump To Location breaks the logic out of the "Perform chain" (dependent PERFORM'd paragraphs) routines in your paragraph logic  Return to the EVALUATE statement via Jump To Location 09  From the Monitors view, change the value of WS-CUSTFILE-STATUS to 09  Step through the code – note the logic flow  Terminate your debug session  Workshop – Jump To Location

18 18  Time permitting – submit the JCL again, and try:  Setting conditional breakpoints  Unsetting breakpoints  Uncheck the box  Single  Remove All  Run until SAM2 abends  Click  Examine  Click OK  What does Examine do?  Submit the JCL again, use:  Run to Location  How does this differ from Jump to Location?  Workshop – Experiment !

19 19  Workshop – Optional Workshop (force an ABEND) If your debugging hasn't yet hit an ABEND condition, try forcing one by doing the following:  From SAM1.cbl  Add these two variables in the WORKING-STORAGE SECTION.  Add these two statements in 710-READ-TRAN-FILE.   Save your changes to SAM1.cbl  Submit SAMCMPLK.jcl – check the return codes in JES  Submit XSAM.jcl, and from your Debug session:  Set a breakpoint at MOVE SPACES TO ABEND-TEST.  (F8) Resume to the breakpoint. (F5) Step into the ABEND  Click  Examine


Download ppt "® IBM Software Group © 2011 IBM Corporation RDz Workbench – Debugging z/OS COBOL Applications Batch COBOL Debugging Workshop Jon Sayles, Rational System."

Similar presentations


Ads by Google