0% found this document useful (0 votes)
33 views178 pages

XPCICSAssemblerUserGuide (9.4)

Uploaded by

pre4508326
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views178 pages

XPCICSAssemblerUserGuide (9.4)

Uploaded by

pre4508326
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 178

Xpediter/CICS

Assembler User Guide

Release 9.4
ii Xpediter/CICS Assembler User Guide

Please direct questions about Xpediter/CICS


or comments on this document to:

Xpediter/CICS Customer Support

http://go.compuware.com/

This document and the product referenced in it are subject to the following legends:

Copyright 1984 - 2015 Compuware Corporation. All rights reserved. Unpublished rights reserved under
the Copyright Laws of the United States.

U.S. GOVERNMENT RIGHTS-Use, duplication, or disclosure by the U.S. Government is subject to


restrictions as set forth in Compuware Corporation license agreement and as provided in DFARS
227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (OCT 1988), FAR 12.212(a) (1995),
FAR 52.227-19, or FAR 52.227-14 (ALT III), as applicable. Compuware Corporation.

This product contains confidential information and trade secrets of Compuware Corporation. Use,
disclosure, or reproduction is prohibited without the prior express written permission of Compuware
Corporation. Access is limited to authorized users. Use of this product is subject to the terms and
conditions of the user’s License Agreement with Compuware Corporation.

Xpediter, Xpediter/CICS, Xpediter/Xchange, Xpediter/Code Coverage, Abend-AID for CICS, FrontLine, and
Compuware are trademarks or registered trademarks of Compuware Corporation.

CICSPlex, CICS Transaction Server, DB2, DFSMS, IBM, MQ Series, MVS, MVS/ESA, OS/390, VTAM,
WebSphere MQ, and z/OS are trademarks or registered trademarks of International Business Machines
Corporation.

Adobe® Reader® is a trademark of Adobe Systems Incorporated in the United States and/or other
countries.

All other company and product names are trademarks or registered trademarks of their respective owners.

Doc. CWXCUA9F
June 29, 2015
iii

Contents

Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
System Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Related Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Online Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Customer Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Compuware Go Customer Support Website . . . . . . . . . . . . . . . . . . . . . . . .xiii
Contacting Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Phone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Corporate Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Information for Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv

Chapter 1. Product Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1


Product Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2
XPED and XPRT Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
XPSP Transaction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4
Product Facilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5
Source-Level Testing and Debugging Facilities . . . . . . . . . . . . . . . . . . . . . . 1-5
CICS Storage Protection Facilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
CICS Region Maintenance Facilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
File Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
Customizing Facilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-6
Help Facility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7
Product Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7
Common Screen Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7
Command Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9
Common Primary Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9
Common Line Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11
PF Key Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12
Update Password Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13

Chapter 2. Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1


Preparing a Program for Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
The Compuware Language Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
Using the NEWCOPY Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
Accessing Xpediter/CICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
Basic Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
Fast-Path Access to the Source Listing screen (2.L) . . . . . . . . . . . . . . . . . . . 2-4
Direct Access to Selected Screens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Navigating Through Xpediter/CICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Exiting Xpediter/CICS and Ending a Debugging Session . . . . . . . . . . . . . . . . . 2-5
Ending a Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5

Chapter 3. Testing an Assembler Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1


Testing without Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Creating a Special Profile for Assembler Debugging . . . . . . . . . . . . . . . . . . . . . 3-6
Viewing Assembler Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
iv Xpediter/CICS Assembler User Guide

Setting Program Breakpoints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8


Executing the Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
Resuming Program Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10
Intercept Summary (1.7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12
Using Enhanced Traps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13
Setting an Enhanced Trap on Initial COMMAREA (ICA) . . . . . . . . . . . . 3-14
Setting an Enhanced Trap Using Containers (CONT) . . . . . . . . . . . . . . . 3-17
Setting an Enhanced Trap Using MQ . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-21
Defining Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22

Chapter 4. Debugging Applications Without Source Code . . . . . . . . . . . . . . . . . . 4-1


When to Use Sourceless Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Preparing for Sourceless Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Using PSEUDOSOURCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Sourceless Debugging without Breakpoints. . . . . . . . . . . . . . . . . . . . . . . . 4-2
Modifying Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
Sourceless Debugging with Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7
Slow-Motion Execution through Code . . . . . . . . . . . . . . . . . . . . . . . 4-9
Viewing Traced Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
Modifying the Logic Path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
Single-Stepping through Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
Modifying Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
Line Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13
Sourceless Debugging without Breakpoints. . . . . . . . . . . . . . . . . . . . . . . 4-13
Modifying Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15
Sourceless Debugging with Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . 4-18
Slow-Motion Execution through Code . . . . . . . . . . . . . . . . . . . . . . 4-19
Viewing Traced Offsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20
Modifying the Logic Path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20
Single-Stepping through Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21
Modifying Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21

Chapter 5. Analyzing Program Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1


Setting Up the Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
Executing the Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2
Analyzing the Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2

Chapter 6. Monitoring Tasks Started from Remote Terminals . . . . . . . . . . . . . . . 6-1


Setting Remote Traps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Viewing a Remote Session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2
Deferring Remote Trap Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4
Releasing Trapped Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5
Viewing Traps for Asynchronous Transactions . . . . . . . . . . . . . . . . . . . . . . . . 6-6

Chapter 7. Providing Storage Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1


Setting Storage Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
Allowing Storage Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2

Chapter 8. Interfacing with Abend-AID for CICS . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1


Turning on Abend-AID for CICS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
Accessing Abend-AID for CICS through Xpediter/CICS. . . . . . . . . . . . . . . . . . 8-1
Issuing an Abend-AID for CICS Snap Dump . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3
Viewing the Abend-AID for CICS Report Directory . . . . . . . . . . . . . . . . . . . . . 8-5
Viewing the Abend-AID for CICS Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . 8-6

Chapter 9. Using Automatic Trap Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1


Trapping an Abend with ATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1
v

Chapter 10. Setting Up a Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1


Changing Profile Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1
Changing PF Key Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2
Changing Output Translate Table Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3
Loading a Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5
Saving Profile Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-6

Chapter 11. Accessing DL/1 Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1


Selecting PSBs and PCBs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1
Selecting Segments from the PCB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-2
Retrieving a DL/1 Segment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-4

Chapter 12. Using Xpediter/CICS with DB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1


Using the DB2 Easy Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1
Setting DB2 Session Default Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1
Accessing a List of DB2 Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-2
Editing a Row. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4
Building an SQL Easy Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-6
Editing a Column . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-9
DB2 Long Identifier Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-9
Debugging DB2 Programs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-11
Setting Breakpoints in SQL Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-11
Setting Keeps on DB2-Specific Data . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-12
Interpreting DSNC Abends and SQL Codes . . . . . . . . . . . . . . . . . . . . . . 12-12
DSNC Abends. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-12
SQL Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-12
Accessing DB2 Storage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-13

Chapter 13. Using Xpediter/CICS with MQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1


Using the MQ File Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1
Accessing a List of MQ Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1
Browsing Messages on an MQ Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3
Adding Messages on an MQ Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-3
Debugging MQ Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4
Enhanced Traps for MQ Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-4
Setting Breakpoints at MQ Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4
Setting Keeps on MQ-Specific Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4
Interpreting MQ Completion and Reason Codes . . . . . . . . . . . . . . . . . . .13-4

Chapter 14. Accessing CICS Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1


Accessing CICS Storage Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1
Displaying CICS DSECTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2
Chaining through CICS Storage Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-3
Method 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-3
Method 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4
Method 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4
Method 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4
Method 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4
Displaying CICS Table Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-5
Displaying Program and Transaction Resources . . . . . . . . . . . . . . . . . . . . 14-6
Reviewing the Select Address List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14-7

Chapter 15. Using Global Storage Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-1


Setting Region-Wide Storage Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-1
Sample Storage Protection Entries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2
Setting Automatic Storage Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2
Activating Test Region Storage Protection . . . . . . . . . . . . . . . . . . . . . . . .15-3
Allowing Storage Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-3
vi Xpediter/CICS Assembler User Guide

Defining System Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-3


Defining Storage Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5
Monitoring Storage Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-6
Interactive Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-6
Unattended Monitoring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-8
Setting Storage Protection during PLT Startup . . . . . . . . . . . . . . . . . . . . . . . . 15-9

Chapter 16. Editing CICS Tables and Control Blocks . . . . . . . . . . . . . . . . . . . . . . 16-1


Editing a CICS Table Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-1
Editing from the Memory Display Screen . . . . . . . . . . . . . . . . . . . . . . . . 16-1
Editing from the DSECTs Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-2

Chapter 17. Using 3270 Web Bridge Support . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1


Running Xpediter/CICS Using the 3270 Web Bridge . . . . . . . . . . . . . . . . . . . 17-1

Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-1

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I-1
vii

Figures
1-1. Primary Menu (XPED/XPRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-4
1-2. Copyright/Trade Secret Notice Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-4
1-3. System Facilities Menu (9) for XPSP Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-5
1-4. Common Screen Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-8
2-1. Primary Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3
2-2. Accessing the Source Listing Screen (2.L) Using the Fast-Path Method . . . . . . . . .2-4
2-3. Exit Session Screen (X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-5
3-1. Primary Menu (XPED/XPRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-1
3-2. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2
3-3. Executing SET JUST OFF on the Assembler Source Listing Screen (2.L) . . . . . . . . .3-2
3-4. Defined Storage Screen (2.3) Accessed with PEEK Command . . . . . . . . . . . . . . . . .3-3
3-5. Source Listing Screen (2.L) Showing Contents of WRKHOUR . . . . . . . . . . . . . . . .3-4
3-6. Changing the Value of WRKHOUR on the Source Listing Screen (2.L) . . . . . . . . .3-5
3-7. Changing the Value of WRKHOUR Using the VERIFY Command . . . . . . . . . . . . .3-5
3-8. Transaction Complete Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-6
3-9. Set Profile Defaults Screen (0.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-7
3-10. Save Profile Screen (0.5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-7
3-11. Displaying Assembler Source on the Source Listing Screen (2.L) . . . . . . . . . . . . . .3-8
3-12. Displaying Breakpoints on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . .3-9
3-13. Intercepting a Breakpoint on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . .3-10
3-14. Executing GO 5 1 on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . .3-11
3-15. PF2 (RUNTO CSR) on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . .3-11
3-16. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-12
3-17. Intercept Summary (1.7). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-12
3-18. Intercept Summary with Intercept Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-13
3-19. Before Breakpoint Taken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-13
3-20. CWDEMASM on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . . . . . .3-14
3-21. Displaying Breakpoints on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . .3-14
3-22. Displaying a Trap on the Trap Summary Screen (1.6) . . . . . . . . . . . . . . . . . . . . . .3-15
3-23. Enhanced Trap for Initial COMMAREA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-15
3-24. Enhanced Trap for All Netnames and Terminal IDs Running CWDEMASM . . . .3-16
3-25. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-16
3-26. Taking an Enhanced Trap for Initial COMMAREA . . . . . . . . . . . . . . . . . . . . . . . .3-17
3-27. Verifying Enhanced Trap for Initial COMMAREA . . . . . . . . . . . . . . . . . . . . . . . . .3-17
3-28. CWDEMACH on the Source Listing Screen (2.L). . . . . . . . . . . . . . . . . . . . . . . . . .3-18
3-29. Displaying Breakpoints on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . .3-18
3-30. Displaying a Trap on the Trap Summary Screen (1.6) . . . . . . . . . . . . . . . . . . . . . .3-19
3-31. Enhanced Trap for Container ACHREPCOMMAREA. . . . . . . . . . . . . . . . . . . . . . .3-19
3-32. Enhanced Trap for All Netnames and Terminal IDs Running CWDEMACH . . . .3-20
3-33. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-20
3-34. Taking an Enhanced Trap for Container ACHREPCOMMAREA . . . . . . . . . . . . . .3-21
3-35. Confirm that Container Data Satisfied Enhanced Trap Criteria . . . . . . . . . . . . . .3-21
3-36. Define User Labels Screen (1.9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-22
3-37. After Breakpoint on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . . .3-23
3-38. Source Listing Screen (2.L) - GO UNTIL MYLABEL . . . . . . . . . . . . . . . . . . . . . . . .3-23
4-1. Primary Menu (XPED/XPRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-2
4-2. Source Listing Screen with CWDEMASM Pseudo-Listing . . . . . . . . . . . . . . . . . . . .4-3
4-3. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-3
4-4. Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-4
4-5. Viewing Program Storage on the Memory Display Screen (2.2) . . . . . . . . . . . . . . .4-5
4-6. Viewing Data Fields on the Memory Display Screen (2.2). . . . . . . . . . . . . . . . . . . .4-5
4-7. Viewing Data Fields on the Memory Display Screen (2.2). . . . . . . . . . . . . . . . . . . .4-6
4-8. Modifying Data on the Memory Display Screen (2.2) . . . . . . . . . . . . . . . . . . . . . . .4-6
4-9. Source Listing Screen (2.L) Showing the GO 1 Command . . . . . . . . . . . . . . . . . . .4-7
4-10. Transaction Complete on the Demonstration Transaction Screen . . . . . . . . . . . . .4-7
4-11. Setting Breakpoints on the Memory Display Screen (2.L) . . . . . . . . . . . . . . . . . . . .4-8
viii Xpediter/CICS Assembler User Guide

4-12. First Breakpoint on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . . . . .4-9


4-13. Line 43 (Offset +98) on the Source Listing Screen (2.L). . . . . . . . . . . . . . . . . . . . .4-10
4-14. Program Trace Screen (2.4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-10
4-15. Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-11
4-16. New Location on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . . . . .4-11
4-17. Instruction Executed on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . .4-12
4-18. Modifying Registers on the Source Listing Screen (2.L0 with Foot Regs. . . . . . . .4-13
4-19. Primary Menu (XPED/XPRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-13
4-20. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-14
4-21. Assembler Break/Abend Screen (2.20) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-14
4-22. Viewing Program Storage on the Memory Display Screen (2.2) . . . . . . . . . . . . . .4-15
4-23. Viewing Data Fields on the Memory Display Screen (2.2). . . . . . . . . . . . . . . . . . .4-16
4-24. Viewing Data Fields on the Memory Display Screen (2.2). . . . . . . . . . . . . . . . . . .4-16
4-25. Modifying Data on the Memory Display Screen (2.2) . . . . . . . . . . . . . . . . . . . . . .4-17
4-26. Assembler Break/Abend Screen (2.20) Showing the GO 1 Command. . . . . . . . . .4-17
4-27. Transaction Complete on the Demonstration Transaction Screen . . . . . . . . . . . .4-18
4-28. Setting Breakpoints on the Memory Display Screen (2.2) . . . . . . . . . . . . . . . . . . .4-18
4-29. First Breakpoint on the Assembler Break/Abend Screen (2.20) . . . . . . . . . . . . . . .4-19
4-30. Offset +98 on the Assembler Break/Abend Screen (2.20). . . . . . . . . . . . . . . . . . . .4-19
4-31. Program Trace Screen (2.4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-20
4-32. Second Breakpoint on the Assembler Break/Abend Screen (2.20) . . . . . . . . . . . . .4-20
4-33. New Location on the Assembler Break/Abend Screen (2.20). . . . . . . . . . . . . . . . .4-21
4-34. Instruction Executed on the Assembler Break/Abend Screen (2.20) . . . . . . . . . . .4-21
4-35. Modifying Registers on the Assembler Break/Abend Screen (2.20) . . . . . . . . . . . .4-22
5-1. Setting Up Analysis on the List Breakpoints Screen (1.1) . . . . . . . . . . . . . . . . . . . .5-1
5-2. Storage Violation on the Demonstration Transaction Screen . . . . . . . . . . . . . . . . .5-2
5-3. Showing Statistics For Analysis on the Source Listing Screen (2.L) . . . . . . . . . . . . .5-3
5-4. Browsing Source Code on the Source Listing Screen (2.L). . . . . . . . . . . . . . . . . . . .5-3
6-1. Session Control Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-1
6-2. Setting a Trap on the Trap Summary Screen (1.6) . . . . . . . . . . . . . . . . . . . . . . . . . .6-2
6-3. Reviewing a Remote Task on the Source Listing Screen . . . . . . . . . . . . . . . . . . . . .6-3
6-4. Trap Indicated on Trap Summary Screen (1.6) . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-3
6-5. Resuming a Remote Task on the Source Listing Screen (2.L). . . . . . . . . . . . . . . . . .6-4
6-6. Demonstration Transaction Screen from the User Terminal. . . . . . . . . . . . . . . . . .6-4
6-7. List Abends Screen (1.3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-5
6-8. Exit Session Screen (X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-6
6-9. Trap for Asynchronous Tasks on the Trap Summary Screen (1.6). . . . . . . . . . . . . .6-6
7-1. Storage Protection Screen (1.8). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-1
7-2. Storage Protection Screen (1.8) with a Protection Entry . . . . . . . . . . . . . . . . . . . . .7-2
7-3. Source Listing Screen (2.L) - Intercepting a Storage Violation. . . . . . . . . . . . . . . . .7-3
7-4. Demonstration Transaction Screen: Displaying a Storage Violation. . . . . . . . . . . .7-4
8-1. Primary Menu (XPED/XPRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-2
8-2. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-2
8-3. Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-3
8-4. Abend-AID for CICS Interface Menu (7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-3
8-5. Abend-AID for CICS Diagnostic Summary Screen . . . . . . . . . . . . . . . . . . . . . . . . . .8-4
8-6. Diagnostic Summary Screen (continued). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-4
8-7. Abend-AID for CICS Report Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-5
8-8. Abend-AID for CICS Interface Menu (7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-5
8-9. Abend-AID for CICS Directory Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-6
8-10. Abend-AID for CICS Diagnostic Information Screen. . . . . . . . . . . . . . . . . . . . . . . .8-6
8-11. Abend-AID for CICS IBM Message Text Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-7
8-12. Abend-AID for CICS Diagnostics Screen (7). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-7
8-13. Abend-AID for CICS Diagnostic Information Screen for an ASRA Abend. . . . . . . .8-8
9-1. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-1
9-2. Automatic Trap Activation Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-2
10-1. Session Profile Menu (0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-1
10-2. Set Profile Defaults Screen 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-2
10-3. Set Profile Defaults Screen 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-2
10-4. Primary PF Key Settings Screen (0.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-3
10-5. Alternate PF Key Settings Screen (0.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-3
Figures ix

10-6. Xpediter/CICS - Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-4


10-7. Xpediter/CICS - Output Translate Table Screen (0.3) after changing X'AD'
and X'BD' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-5
10-8. Xpediter/CICS - Source Listing Screen (2.L) with display brackets . . . . . . . . . . . .10-5
10-9. Load Profile Screen (0.4). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-6
10-10. Save Profile Screen (0.5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-6
11-1. DL/1 Database Menu (5.4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-1
11-2. DL/1 PSB List Screen (5.4.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-2
11-3. DL/1 PCB List Screen (5.4.2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-2
11-4. DL/1 Segment List Screen (5.4.3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-3
11-5. Edit DL/1 Segment Screen (5.4.4). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-3
11-6. Modifying the SSA on the Edit DL/1 Segment Screen (5.4.4) . . . . . . . . . . . . . . . .11-4
11-7. Displaying the Area on the PCB Edit DL/1 Segment Screen (5.4.4) . . . . . . . . . . .11-5
11-8. Edit DL/1 Segment Screen (5.4.4) - SHOW DATA . . . . . . . . . . . . . . . . . . . . . . . . .11-5
11-9. Edit DL/1 Segment Screen (5.4.4) - HEX ON . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-6
11-10. Edit DL/1 Segment Screen (5.4.4) - HEX DUMP . . . . . . . . . . . . . . . . . . . . . . . . . .11-6
11-11. Edit DL/1 Segment Screen (5.4.4) - SHOW KEYS . . . . . . . . . . . . . . . . . . . . . . . . . .11-7
12-1. DB2 Easy Query Menu (5.5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-1
12-2. DB2 Setup Screen (5.5.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-2
12-3. DB2 Table/View List Screen (5.5.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-3
12-4. DB2 Browse Result Table Screen (5.5.4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-3
12-5. DB2 Edit Result Table Row Screen (5.5.5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-4
12-6. Help Screen for INTEGER TO DECIMAL CONVERSION ERROR Message . . . . . . .12-5
12-7. DB2 Browse Result Table Screen (5.5.4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-5
12-8. DB2 Build SQL Easy Query Screen (5.5.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-6
12-9. DB2 Build SQL Easy Query Screen (5.5.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-7
12-10. DB2 Browse Generated SQL Call Screen (5.5.3) . . . . . . . . . . . . . . . . . . . . . . . . . . .12-7
12-11. DB2 Browse Result Table Screen (5.5.4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-8
12-12. DB2 Edit Result Table Row Screen (5.5.5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-8
12-13. DB2 Browse Result Table Screen (5.5.4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-9
12-14. DB2 Edit Composite Column Screen (5.5.6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-9
12-15. DB2 Table/View List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-10
12-16. DB2 Build SQL Easy Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-11
12-17. DB2 Browse Generated SQL Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-11
12-18. Help Exit Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-13
13-1. MQ Menu (5.6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-1
13-2. MQ Setup Screen (5.6.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-2
13-3. MQ Queue List Screen (5.6.1). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-2
13-4. Browse MQ Queue Message Screen (5.6.2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-3
13-5. Update MQ Queue Message Screen (5.6.3). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-3
14-1. Displaying TCA on the Memory Display Screen (2.2) . . . . . . . . . . . . . . . . . . . . . .14-1
14-2. Displaying the CSA on the Memory Display Screen (2.2) . . . . . . . . . . . . . . . . . . .14-2
14-3. Accessing the CSA on the DSECTs Screen (2.D). . . . . . . . . . . . . . . . . . . . . . . . . . .14-2
14-4. Chaining Through the CSA on the Memory Display Screen (2.2) . . . . . . . . . . . .14-3
14-5. Task Storage Screen (2.S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14-5
14-6. Displaying the FCT on the Memory Display Screen (2.2) . . . . . . . . . . . . . . . . . . .14-6
14-7. Invalid Table Entry ID Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14-6
14-8. CICS Resources Screen (2.R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14-7
14-9. Select Address Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14-7
14-10. Memory Display Screen (2.2) from the Select Address Screen . . . . . . . . . . . . . . . .14-8
14-11. Address Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14-8
15-1. Making Storage Protection Entries on the Storage Protection Screen (9.8) . . . . . .15-1
15-2. Monitoring Transactions on the Storage Protection Screen (9.8) . . . . . . . . . . . . .15-2
15-3. Turning Off Monitoring on the Storage Protection Screen (9.8) . . . . . . . . . . . . . .15-2
15-4. Define System Labels Screen (9.9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-4
15-5. EIB Entries on Define System Labels Screen (9.9) . . . . . . . . . . . . . . . . . . . . . . . . .15-5
15-6. Exceptions Entered on the Storage Exceptions Screen (9.7) . . . . . . . . . . . . . . . . .15-5
15-7. Setting an Abend Trap on the Trap Summary Screen (9.6) . . . . . . . . . . . . . . . . . .15-6
15-8. Storage Protection Screen (9.8). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-7
15-9. Storage Violation on the Demonstration Transaction Screen . . . . . . . . . . . . . . . .15-7
15-10. Intercepting a Storage Violation on the Break/Abend Screen (2.1) . . . . . . . . . . . .15-8
x Xpediter/CICS Assembler User Guide

15-11. Removing Abend Trap and the Exit Session Screen (X). . . . . . . . . . . . . . . . . . . . .15-8
15-12. Preventing a Storage Violation on the Demonstration Transaction Screen . . . . .15-9
16-1. Changing the TCT on the Memory Display Screen (9.2). . . . . . . . . . . . . . . . . . . .16-2
16-2. DSECTs Screen (9.D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16-3
17-1. Xpediter/CICS Primary Menu (XPED/XPRT) Using 3270 Web Bridge . . . . . . . . .17-2
17-2. Entering XCB2 on a Blank CICS Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-3
17-3. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-4
17-4. Source Listing Screen (2.L) Showing an ASRA . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-5
17-5. Demonstration Transaction Completed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-6
xi

Introduction Intro

This guide provides step-by-step instructions on how to use Xpediter/CICS to solve


common debugging problems. To become acquainted with Xpediter/CICS, you should
first review Chapter 1, “Product Overview” and Chapter 2, “Getting Started”.

The chapters listed below contain exercises using common examples. The first examples
show how to access and exit the product and how to debug a simple transaction.
Subsequent chapters provide exercises on how to set breakpoints in a program, how to
step through the program, and how to change storage. The later chapters provide
exercises on advanced features.

The exercises cover only a portion of the many Xpediter/CICS screens and functions. For
more information on these topics, see the Xpediter/CICS Reference Manual.

This guide contains the following chapters:

Chapter 1, “Product Overview”: Introduces Xpediter’s facilities and discusses the need
for an interactive debugging tool. The overview also includes features that are new to this
release of the product.

Chapter 2, “Getting Started”: Shows how to prepare your application for debugging,
accessing, and exiting Xpediter/CICS.

Chapter 3, “Testing an Assembler Program”: Shows how to test an Assembler program


with and without breakpoints, and how to inspect program data.

Chapter 4, “Debugging Applications Without Source Code”: Provides tips on


performing sourceless debugging.

Chapter 5, “Analyzing Program Execution”: Discusses how to analyze program


execution, prepare for analysis of a program, execute the program, then analyze the data.

Chapter 6, “Monitoring Tasks Started from Remote Terminals”: Describes how to set
and intercept remote traps.

Chapter 7, “Providing Storage Protection”: Shows how to handle storage violations


and set region-wide storage protection.

Chapter 8, “Interfacing with Abend-AID for CICS”: Discusses the interface with
Compuware’s Abend-AID for CICS fault diagnosis product.

Chapter 9, “Using Automatic Trap Activation”: Explain how ATA traps abends without
the user having an Xpediter session active.

Chapter 10, “Setting Up a Profile”: Describes how to set up a customized environment


that modifies program default values.

Chapter 11, “Accessing DL/1 Databases”: Shows how to list PCBs and edit a DL/I
segment.

Chapter 12, “Using Xpediter/CICS with DB2”: Tips on row and column editing of DB2
tables and views.

Chapter 13, “Using Xpediter/CICS with MQ”: Describes the MQ File Utility and how to
debug MQ programs.

Chapter 14, “Accessing CICS Storage”: Describes how to access and update CICS
storage.
xii Xpediter/CICS Assembler User Guide

Chapter 15, “Using Global Storage Protection”: Shows how to set protection, define
system labels, and control storage exceptions.

Chapter 16, “Editing CICS Tables and Control Blocks”: Describes how to display CICS
table entries and DSECTs.

Chapter 17, “Using 3270 Web Bridge Support”: Demonstrates how to run Xpediter
using the 3270 Web Bridge function.

“Glossary”: Describes Xpediter/CICS features, and defines key terms.

Intended Audience
Xpediter/CICS is structured in three levels to accommodate several types of users. The
audience for this manual may differ, depending on the experience of the user and the
transactions for which the user is authorized. The following three transactions are used
to describe Xpediter’s three levels:

• XPED – Intended for application programmers who want a source level focus.
• XPRT – Intended for application programmers who want a break/abend focus.
• XPSP – Intended for experienced system programmers who are authorized to update
CICS tables and control areas.

System Environment
See the Xpediter/CICS Release Notes for the most current system environment information.

Related Publications
The documents in the following list are no longer provided in the installation package.
For details, see “Online Documentation” below.

• Xpediter/CICS Release Notes: Overview of release features, supported operating


environments, customer support, and any new Xpediter information.
• Xpediter/CICS Installation and Configuration Guide: Gives step-by-step instructions for the
system programmer to configure, customize, and maintain Xpediter/CICS. Refer to it
when installing Xpediter/CICS according to the Compuware Installer Mainframe Products
SMP/E Installation Guide.
• Xpediter/CICS Reference Manual: Provides specific reference information about
Xpediter’s features, utilities, menus, and command parameters.
• Xpediter/CICS User Guide for Assembler, COBOL, PL/I, or C: Introduction to Xpediter’s
levels, screens, and functions.
• Xpediter/CICS Quick Reference: Handy reference for screen IDs and command syntax.
• Xpediter/CICS Messages and Codes: Lists error and warning messages that might be
encountered during installation or use of Xpediter.

For information regarding Compuware Shared Services, refer to the Enterprise Common
Components Installation and Customization Guide.

Online Documentation
The Xpediter/CICS product installation package does not include the product
documentation. Access the Xpediter/CICS documentation from the Compuware Go
Introduction xiii

customer support website at http://go.compuware.com in the following electronic


formats:

• Release Notes in HTML format


• Product manuals in PDF format
• Adobe PDF index file (PDX file)
• Product manuals in HTML format.

The product documentation is available for viewing or downloading:

• View PDF files with the free Adobe Reader, available at http://www.adobe.com.
• View HTML files with any standard web browser.

Customer Support
Compuware provides a variety of support resources to make it easy for you to find the
information you need.

Compuware Go Customer Support Website


You can access online information for Compuware products via our Compuware Go
customer support website at http://go.compuware.com.

Compuware Go provides access to critical information about your Compuware products.


You can review frequently asked questions, read or download documentation, access
product fixes, or e-mail your questions or comments. The first time you access
Compuware Go, you are required to register and obtain a password. Registration is free.

Compuware now offers User Communities, online forums to collaborate, network, and
exchange best practices with other Compuware solution users worldwide. To join, go to
http://groups.compuware.com.

Contacting Customer Support


Phone
• USA and Canada: 1-800-538-7822 or 1-313-227-5444.
• All other countries: Contact your local Compuware office. Contact information is
available at http://go.compuware.com.

Web
You can report issues via the Quick Link Create & View Support Cases on the
Compuware Go home page.

Note: Please report all high-priority issues by telephone.

Mail
Compuware Customer Support
Compuware Corporation
One Campus Martius
Detroit, MI 48226-5099

Corporate Website
To access Compuware’s site on the Web, go to http://www.compuware.com.
xiv Xpediter/CICS Assembler User Guide

The Compuware site provides a variety of product and support information.

Information for Customer Support


If problems arise, please check your manual for assistance. If problems persist, please
obtain the following information before calling Compuware for assistance. This
information will help determine the exact cause of the problem as quickly as possible.

1. Identify the release number of Compuware product(s) in use.


2. Identify the operating system.
3. Identify the release of CICS Transaction Server that is being used.
4. If an abend occurs, note the displacement and the module in which it occurs. If
possible, obtain a copy of the system dump.
5. Note the sequence of steps (including all commands issued) that resulted in the
problem. Also note any variable data types and programming languages involved.
6. To receive product fixes electronically, be ready to provide your email address.
1-1

Chapter 1.
Product Overview Chap 1

Xpediter/CICS gives the CICS programmer complete control over the execution of
application code, trapping of abends, and access to data files and CICS storage, including
tables and control blocks in DSECT format. An easy-to-use architecture allows you to
interactively debug application programs quickly and accurately.

Xpediter/CICS lets you control the execution of your program and monitor its status at
any time. You can set breakpoints to suspend execution (with or without conditions),
change the program logic flow, intercept abends or storage violations, and many other
functions, all without leaving the test session or recompiling.

Xpediter/CICS allows you to interact directly with the program as it executes, allowing
you to perform the following functions:

• View and interact with program source code, online.


• Display and update records in files, transient data, temporary storage, DB2 tables,
and DL/I databases. Xpediter also gives you the option of logging any changes.
• List, browse, and update MQ message queues.
• List a task’s active channels and containers, and browse container data.
• Stop execution of a program at any point and examine working storage.
• Resume execution at any point in the program.
• Execute statements one at a time while examining program logic.
• Modify any unprotected program data, CICS table, or CICS area.
• Monitor remote transactions.
• Ensure region integrity through storage protection.

Note: XPLINK programs are excluded from Xpediter/CICS storage protection.

Using Xpediter/CICS, you can observe a program as it executes, stop execution, look at
intermediate results, correct problems as they arise, and proceed with the test. When
Xpediter/CICS traps an abend, it displays a wealth of information that aids in
understanding and correcting that abend. You can even resolve multiple problems during
a single test session. Xpediter’s Script Facility allows you to record selected primary and
line commands entered during a debugging session, save them in a dataset, and then
replay them later.

Xpediter/CICS provides alternatives for problem resolution. When the product identifies
a problem, you can select particular statements at which to suspend execution, then
analyze both working storage and a program trace. If a program stops at an abend, you
can correct the problem or bypass the abend. To bypass an abend, just instruct Xpediter
to resume execution at a statement number or offset past the point of the abend.

Three restricted modes of operation — Diagnosis Mode, Utilities Mode, and


Diagnosis/Utilities Mode — allow a site to tailor its Xpediter implementation to suit the
processing integrity and throughput requirements of its various CICS regions. This means
you can deploy Xpediter/CICS as a crucial, safe, and effective tool in your production
CICS regions. Utilizing Xpediter in a restricted operating mode, especially along with
Abend-AID for CICS, lets you quickly diagnose and resolve critical production failures
without wasting time and effort recreating the problem in a test region.
1-2 Xpediter/CICS Assembler User Guide

Note: All descriptions in this manual, unless otherwise noted, pertain to Xpediter’s
standard, non-restricted operating mode.

Product Architecture
Xpediter/CICS is designed to provide different levels of functionality.

The ISPF-like nature of Xpediter and its source-based approach make it immediately
familiar. Yet it is powerful enough to meet your most complex debugging requirements.
Xpediter/CICS provides an efficient, non-intrusive architecture that can protect the CICS
region from storage violations. It also offers complete CICS-specific debugging
capabilities for both application and system programmers in the CICS environment.

Xpediter/CICS supports applications written in Assembler, COBOL, PL/I, or C, plus a


variety of other programming languages on an Assembler instruction-level basis.

Xpediter’s unique multi-access design lets users access the product through their choice
of three separate and securable debugging transactions:

• XPED access causes Xpediter to display the Source Listing screen (2.L) when an
abend occurs or a breakpoint is encountered.
• XPRT retains the feel of earlier releases by displaying the Break/Abend screen (2.1) at
an abend or breakpoint.
• XPSP access provides all the power of the XPED and XPRT transactions, plus
additional system maintenance capabilities for the CICS specialist responsible for
supporting the CICS region.

XPED is the standard transaction used by application programmers. All the commands
and functions available with XPED can also be accessed through the XPRT transaction.
With either transaction, Xpediter/CICS provides:

• Display-only access to CICS storage areas


• Update capability for application transaction storage areas
• Access to FCT or CEDA-defined files, transient data, temporary storage, IMS
databases, DB2 tables, and MQ message queues.

The only real difference between the two transactions is that when a breakpoint is
reached or an abend occurs, by default XPED displays the Source Listing screen (2.L),
while XPRT displays the Break/Abend screen (2.1).

The XPSP transaction is designed for those system programmers authorized to update
unprotected CICS tables and control areas. It permits unrestricted storage area updates
and provides hung task analysis, along with other special region maintenance and
debugging functions. XPSP allows you to establish and control system-wide storage
protection.

Xpediter can also be configured to operate in any of three restricted modes of operation:

• Diagnosis Mode
• Utilities Mode
• Diagnosis/Utilities Mode.

These modes allow a site to tailor its Xpediter implementation to suit the processing
integrity and throughput requirements of its various CICS regions. In Diagnosis Mode,
the user is prevented from modifying data or changing the sequence of program
execution. In Utilities Mode, only the Xpediter file utility, storage display facility, and
source listing utility are accessible. Storage, databases, and files can be viewed and
modified, but trap, trace, and monitor functions are unavailable. Diagnosis/Utilities
Mode combines the restrictions of the other two modes. You can access Xpediter’s file
utility and source listing utility and view storage on the Memory Display (2.2 and 9.2),
Task Storage Display (2.S), and DSECTs (2.D and 9.D) screens. A mode indicator message
Product Overview 1-3

is displayed in the upper left-hand corner of all Xpediter screens when the product is
operating in one of the restricted modes. For more information see Chapter 5, “Restricted
Operating Modes” in the Xpediter/CICS Reference Manual.

Note: All descriptions in this manual, unless otherwise noted, pertain to Xpediter’s
standard, non-restricted operating mode.

XPED and XPRT Transactions


The XPED transaction accesses all of Xpediter/CICS’s functions for source-level testing
and debugging of your application program. The XPRT transaction is intended for CICS
application programmers who prefer the break/abend approach to testing and debugging
that was used in earlier releases of Xpediter/CICS. Both transactions provide the same
enhanced debugging features and allow you to browse CICS storage areas. XPED and
XPRT also let you specify storage protection options, abend traps, and trace options. You
can customize your debugging session through profile options that you can store and use
again. If an abend occurs, Xpediter/CICS automatically displays by default either the
Source Listing screen (2.L) for XPED users, or the Break/Abend screen (2.1) for XPRT
users.

The Xpediter/CICS Primary Menu, shown in Figure 1-1, lists the screen number and
name of each product facility menu available via the XPED and XPRT transactions. The
option shown for Code Coverage, a sophisticated and powerful tool used with
Xpediter/CICS to verify the thoroughness of testing, is only displayed if the separate
Xpediter/Code Coverage product has been installed for the current CICS region. The
option shown for Xchange/CICS is only displayed if Xpediter/Xchange is active in the
CICS region. The option shown for CICSPlex facilities is only displayed if the CICSPLX
global parameter is set to YES.

There are four main ways you can navigate through Xpediter/CICS:

• Type one of the screen numbers from a displayed menu in the COMMAND field and
press Enter.
• Move the cursor next to the desired screen number on a menu, type S, and press
Enter.
• Transfer directly to any product screen by typing an equal sign (=) followed by the
complete screen number — for instance =5.2.2 — then pressing Enter.
• Use PF keys to transfer to commonly used screens. The PF keys and defaults for the
corresponding screens are as follows:

PF6 LOCATE * (2.L or 2.20)


PF13 Primary Menu
PF14 Memory Display screen (2.2)
PF16 Defined Storage screen (2.3)
PF17 Program Trace screen (2.4)
PF21 File Utility Menu (5).
1-4 Xpediter/CICS Assembler User Guide

Figure 1-1. Primary Menu (XPED/XPRT)

-------------------- XPEDITER/CICS 09.04.00 - PRIMARY MENU ----------------C123


COMMAND ===>
MODULE: CSECT:

0 SESSION PROFILE - Set default session attributes
1 SESSION CONTROL - Analyze summary of session events
2 DEBUGGING FACILITIES - Interactively debug application programs
5 FILE UTILITY - Access datasets, temp stg, trans data, DLI, DB2
7 ABEND-AID FOR CICS - Interface to Abend-AID for CICS

C CODE COVERAGE - Interface to Xpediter/Code Coverage
G XCHANGE/CICS - Interface to Xpediter/Xchange CICS Facilities
P CICSPLEX FACILITIES - Access CICSPlex Control Facilities
X EXIT - Exit Xpediter

To set breakpoints in your program or keep specific data fields,
enter your program name and use either the SOURCE command or PF key.

For Online Technical Support refer to: http://frontline.compuware.com


NOTICE: Press PF2/PF14 to display the Copyright/Trade Secret Notice

While the Primary Menu is displayed, pressing PF2 or PF14 will display the copyright and
trade secret notices as shown in Figure 1-2.

Figure 1-2. Copyright/Trade Secret Notice Screen

------------------------ XPEDITER/CICS - HELP FACILITY --------------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: ******** HIT PF1 AGAIN FOR HELP ON USING TUTORIALS ********
Help Module: DBUHLEGL

Commands: END (Prev screen) CANCEL (Exit help) UP DOWN Line 1 of 19

Copyright 1984 - 2014 Compuware Corporation. All rights reserved.
Unpublished - rights reserved under the Copyright Laws of the United States.

----------------------------------------------------------------------------
| U. S. GOVERNMENT RIGHTS |
| Use, duplication, or disclosure by the U.S. Government is subject to |
| restrictions as set forth in Compuware Corporation license agreement |
| and as provided in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), |
| DFARS 252.227-7013(c)(1)(ii)(OCT 1988), Far 12.212(a) (1995), FAR |
| 52.227-19, or FAR 52.227-14 (ALT III), as applicable. |
| Compuware Corporation |
----------------------------------------------------------------------------

THIS PRODUCT CONTAINS CONFIDENTIAL INFORMATION AND TRADE SECRETS OF COMPUWARE
CORPORATION. USE, DISCLOSURE, OR REPRODUCTION IS PROHIBITED WITHOUT THE PRIOR
EXPRESS WRITTEN PERMISSION OF COMPUWARE CORPORATION. ACCESS IS LIMITED TO
AUTHORIZED USERS. USE OF THIS PRODUCT IS SUBJECT TO THE TERMS AND CONDITIONS

XPSP Transaction
The XPSP transaction gives the CICS system programmer all the functionality of the
XPED and XPRT transactions, and adds special CICS region-related utilities. When you
access Xpediter/CICS with XPSP, the Primary Menu displayed is similar to the
XPED/XPRT Primary Menu, but with one additional option:

9 SYSTEM FACILITIES - Access global region analysis facilities


Product Overview 1-5

When you select option 9, System Facilities, you have access to the extended XPSP
functions, which include:

• A CICS storage and table editor


• Power to activate storage protection anywhere in the CICS region
• Ability to analyze hung (system suspended) CICS transactions and chain through
CICS storage areas
• Ability to open and close source listing datasets.

The System Facilities Menu (Figure 1-3) shows the additional functions available to the
XPSP user.

Figure 1-3. System Facilities Menu (9) for XPSP Users

------------------ XPEDITER/CICS - SYSTEM FACILITIES MENU (9) -------------C123


COMMAND ===>
MODULE: CSECT:


1 VIEW SINGLE TASK - View a selected task
2 MEMORY - Display/modify memory
3 TASK LIST - List all Tasks in the CICS region
4 MONITOR FACILITIES - Display/modify monitoring rules
5 CSECT EXCLUSIONS - Display/modify CSECT exclusions
6 TRAP SUMMARY - Display/modify global ABEND traps
7 STORAGE EXCEPTIONS - Display/modify global storage protection exceptions
8 STORAGE PROTECTION - Display/modify global storage protection entries
9 SYSTEM LABELS - Create system labels for storage areas
D DSECTS - Display formatted DSECTs
L SLS DATASETS - Process SLS datasets
P RESOURCE SUMMARY - Display/remove global breakpoints/keeps

Product Facilities
Compuware product developers know that, without Xpediter, debugging an application
can be among the most time-consuming and exasperating tasks you perform. Yet an
error-free application is an absolute necessity. The Xpediter/CICS facilities listed below
help you locate, identify, and eliminate application errors.

Source-Level Testing and Debugging Facilities


• Include an interactive, source code display for PL/I, COBOL, C, and Assembler
programs
• Allow dynamic interaction with program source listings
• Step through (execute) program statements and instructions in timed slow motion or
one at a time (single-stepping)
• Stop execution before or after specified statements or instructions
• Skip or redirect execution around specified statements or instructions
• Detect, isolate, and prevent transaction abends and storage violations
• Allow interactive changes to program variables

Note: In its character display of memory, Xpediter/CICS uses a decimal point to stand
for any unprintable character. For that reason, a decimal point you type into that
character display will not be recognized unless it overtypes a printable character
— not another decimal point. When hex is displayed, x'4B' can be entered to
denote a decimal point.

• Bypass or modify faulty logic flow


1-6 Xpediter/CICS Assembler User Guide

• Provide a statement-level trace


• Count executions of repetitive statements or paragraphs
• Record, save, and play back scripts of primary and line commands.
• Interface dynamically with Compuware’s fault diagnostic product Abend-AID for
CICS.
• View CICS resources online.

CICS Storage Protection Facilities


• Region-wide protection capability
• Protection filters by terminal, transaction, and program
• Protection exceptions plus interactive and unattended protection options
• Over 90 detailed diagnostics from Xpediter/CICS
• Full range of Abend-AID for CICS diagnostics.

CICS Region Maintenance Facilities


• CICS storage and table editor
• Formatted DSECTs
• Region-wide trap and trace
• Hung transaction analysis
• Storage chains.

File Utility
• Browse, edit, and map records (COBOL and PL/I only) from CICS files
• Log changes to supported resources
• Support for BDAM and VSAM files, temporary storage, transient data, DB2 and IMS
databases, and MQ queues.

Customizing Facilities
• Multitransaction architecture with specific facilities for different types of users
• Three restricted modes of operation
• User session profiles
• Hexadecimal calculator
• Screen footings.

Xpediter/CICS can be used in both the test and production environments for a variety of
tasks, including:

• Storage Protection — Protection can be set up to monitor new transactions or


programs in the production region, and intercept storage violations before they
occur.

Note: XPLINK programs are excluded from Xpediter/CICS storage protection.

• Bad Record Correction — The File Utility can be used in either environment to
correct bad records.
• System Maintenance — Authorized users can view and modify CICS storage without
bringing down the region.
• Hung Task Analysis — System programmers can look at an end user’s task to
determine problems.
• Remote Trapping — Application support personnel are able to set traps to gain
control and diagnose end-user sessions.
Product Overview 1-7

Help Facility
Xpediter/CICS contains an extensive set of Help screens to assist you in learning the
product. The Xpediter/CICS Help facility uses hypertext links to allow easy navigation
through topics. Links to related topics are displayed with distinctive color and intensity.
Simply tab to the hypertext link and press Enter to display the linked topic.

Help screens are available from any product screen by pressing PF1. The screens provide
detailed information about the commands and functions available in each of the 
Xpediter/CICS areas. Use the Help screens when you need information about a particular
screen or command. For example, to obtain a description of the SHOW command, type
SHOW on the COMMAND line and press PF1, or enter the primary command HELP
SHOW. A description of the format and use of the SHOW command will be displayed.

While in the Help facility, use the following keys to navigate through the screens:

PF3 Return to the previous Help topic


PF7 Scroll backward
PF8 Scroll forward

Many common 3270 terminal emulation software packages running on PCs can be
configured to allow selection of hypertext links by double-clicking with the left mouse
button. You can also double-click on the highlighted commands (CANCEL, END, UP, and
DOWN) at the top of the Help screens to return to previous topics, scroll, or exit the Help
facility.

Users of IBM Personal Communications/3270 Version 4 or above should perform the


following steps to enable mouse navigation of the Xpediter/CICS Help facility:

1. On the Assist menu, click Hotspots Setup.


2. Click the Point-and-Select (Enter at cursor position) check box and then click OK.

The Help PF key can also be used to supply you with additional error information. Error
messages are usually enclosed in asterisks (*). When an error message is displayed with
plus signs (+), you can receive more specific information about that message by pressing
PF1. For example, pressing PF1 for the error message NO SOURCE AVAILABLE will
provide exact information on why source for that particular program cannot be located.

HELP NEWS provides online information about the new features in the latest release,
including new commands, screens, and parameters. HELP NOSOURCE provides
information to help you discover why source listings are not displayed for a particular
program. Several possible causes are listed with suggested solutions.

Product Conventions
This section discusses the following Xpediter/CICS product conventions:

• Common screen fields


• Command entry
• PF key settings
• Update password security.

Common Screen Fields


Each screen is identified on the top line by a title or a screen ID. You can navigate from
one Xpediter/CICS screen to another using menus, screen IDs (fast path), or commands.
1-8 Xpediter/CICS Assembler User Guide

Figure 1-4 shows the fields that are common across Xpediter/CICS screens. Each field is
described below.

Figure 1-4. Common Screen Fields

MODE:DIAG----------- XPEDITER/CICS - LIST BREAKPOINTS (1.1) ---------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 14 JUL 1997 - 11.22.26

• Mode Indicator Message — If Xpediter is operating in one of it’s restricted modes, a


message is displayed in the upper left corner of all screens.
• Screen Title and ID — Each screen title and ID is unique. Specify the screen ID in the
COMMAND field to display that screen. For example, =1.1 displays the List
Breakpoints screen. A portion of the title is overlaid with the current date and time if
the SET SUPPORT ON command has been issued.
• Optimization Indicator — As shown in Table 1-1, OPT is displayed to the left of the
System ID for any program compiled with some level of optimization or inlining. For
optimized COBOL 5.1 and above programs, OPT(n) is displayed, where n is the level
of optimization. For optimized C programs, either OPT or OPT(n) is displayed,
depending on the level of optimization.

Table 1-1. Optimization Indicator Display


Language Compile
OPT Indicator OPT(n) Indicator
Compiler Option
OPTIMIZE Yes for COBOL 4.2 Yes for COBOL 5.1
COBOL
or OPT and below and above
OPTIMIZE
C Yes Yes
or OPT
C INLINE Yes No
OPTIMIZE
PL/I Yes No
or OPT
PL/I INLINE Yes No

Note: The Optimization Indicator is not displayed for Assembler programs.

• System ID — The SYSIDNT value for the current CICS region is conveniently
displayed in the upper-right corner of every screen.
• COMMAND Field — Type primary commands and screen IDs in the COMMAND
field. Some PF keys also depend on the parameters that you enter in this field.
Multiple primary commands, separated by the current command delimiter, can be
entered at the same time. A semi-colon (;) is the default delimiter.

Note: The default command delimiter can be changed with the CMDDLM global
parameter. (See the Xpediter/CICS Installation and Configuration Guide chapter
entitled “Global Parameters Table” for more information.) The CMDDLM
value is the default delimiter only for users with no delimiter stored in their
user profile, such as new users or existing users invoking a new release of
Xpediter for the first time. Once a command delimiter has been set for a
given user, it can be changed using the DELIM field on the Set Profile
Defaults screen (0.1). See the Xpediter/CICS Reference Manual for details.

Note: The HELP primary command cannot be entered together with other
commands, and multiple primary commands cannot be entered from
Xpediter’s Help facility.
Product Overview 1-9

• SCROLL Field — Sets the scroll value for screens that permit scrolling.
• MODULE Field — Displays the current load module name regardless of what CSECT
within the load module is being debugged.
• CSECT Field — Identifies the CSECT on the Xpediter screen. To change to another
CSECT, simply type the new name. Current breakpoints and keeps are retained until
they are deleted or the session is ended.
Notes:
– The CSECT field accommodates mixed-case CSECT names up to 16 characters
and abbreviated CSECT names when the name is greater than 16 characters.
– This field is protected on the Script Dataset Allocation screen (0.6), the Data Area
screens (2.3), and the Break/Abend screen (2.1).
– Xpediter/CICS may issue diagnostic or informational messages that overlay the
CSECT and COMPILED fields. If the message is surrounded by plus signs (+++),
you can access extended help by pressing PF1. When you press PF3 to exit the
help, the CSECT and COMPILED fields are redisplayed. If extended help is not
available, simply press Enter to redisplay the fields.
• COMPILED: Field — Displays the date and time the program was compiled in
DD MMM YYYY format. When Xpediter/CICS issues a diagnostic or informational
message, the message displays instead of the compilation date and time.

When the text of the message is surrounded by plus signs (++), type HELP in the
COMMAND field and press Enter, or use PF1 (HELP), to obtain more detailed information
about the message.

Command Entry
Xpediter/CICS has many commands to assist you in your debugging tasks. There are
three ways of entering commands, but not every command can be entered in every way:

For specific information on command syntax, usage, and notation conventions, refer to
the Xpediter/CICS Quick Reference.

• Primary Commands — These commands are entered in the COMMAND field of any
screen.
• Line Commands — A subset of the primary commands, line commands are typed in
the line number area of the display (2.L screen) or in the prefix command field that
may precede the data on a line.
• PF Keys — PF keys are set by default to the most commonly used commands; they are
executed simply by pressing the key. If you wish, you can reset the PF key
assignments as part of your user profile. See “PF Key Settings” on page 1-12.

Common Primary Commands


Some commonly used Xpediter/CICS primary commands are:

AFTER
Sets conditional or unconditional breakpoints after the execution of a statement or
instruction.

BEFORE
Sets conditional or unconditional breakpoints before the execution of a statement or
instruction.
1-10 Xpediter/CICS Assembler User Guide

CALC
Performs hexadecimal/decimal calculations and displays the results online.

COUNT
Sets execution counts and gathers test coverage statistics.

DELETE
Removes either a specific object or a dataset record, depending on the screen you access.

EXCLUDE
Excludes specified lines from display. You see only the lines of code in which you are
interested. When you step through a program, lines are redisplayed as they are executed
so you can see the logic flow of the program. Symbolic label support is provided so that
you can exclude a range of lines.

EXIT (PF4)
Transfers to the Exit Session screen.

FIND
Positions the cursor on a specified string. Can be used in conjunction with the EXCLUDE
command.

GO (PF12)
Executes program logic by the specified parameter. If no parameters are specified,
resumes execution from the current location. GO 5 1 will execute five statements,
pausing one second between each statement. GO UNTIL WA-HOURS executes until the
value of WA-HOURS changes.

GOTO
Used to reposition execution at another point in the program. Repositions the current
execution pointer to the specified statement, offset, or address.

GPREGS
Sets footing options to the general purpose registers.

HELP (PF1)
Displays hypertext online help. HELP COMMANDS displays a list of the available
commands. HELP NEWS gives information about the current release. Entering HELP on a
particular screen will display information about that screen.

KEEP
Selects the contents of a data item to be viewed in the scrollable and sizeable keep
window. To change displayed data, overtype it with a new value.

LOCATE * (PF6)
Transfers from any Xpediter screen directly to the Source Listing screen (2.L) or
Assembler Break/Abend screen (2.20).

REPEAT
Re-executes the last primary command.
Product Overview 1-11

RUNTO
Sets a one-time unconditional breakpoint before the execution of a statement or
instruction. GO will also be issued if you are at a trapped transaction.

SET
Changes debugging parameters:

KEEPS: Changes the size of the keep window.


JUSTIFICATION: Clips the current source listing so that extraneous data in the
source is removed from the display. SET JUSTIFICATION ON clips the lines and
suppresses all lines before the first and after the last source line in the display.
REGS: Specifies the display format (64 or 32) for the General Purpose registers shown
on the “Assembler Break/Abend” screen (2.20) and on the REGISTERS footing.
Ignored when CICS is not running on a z/Architecture machine.
SOURCE: Provides either a source or break/abend focus.
FOOT: Changes the data displayed in the FOOTING.
DATA: Displays hex result of last CALC command.
KEYS: Displays the PF key settings.
REGS: Displays current program register contents, assembler instruction, and
PSW for break/abend.
SOURCE: Displays five lines of source.
STATUS: Displays status of current task.
FLOAT: Displays current floating point register contents.

SHOW
Modifies the format of selected screens to display data in different forms.

SKIP
Temporarily bypasses the execution of a statement.

VERIFY
Displays and, if desired, modifies Assembler object code.

Common Line Commands


Some commonly used Xpediter/CICS line commands are:

A (After)
Sets an unconditional breakpoint after a statement.

AC (After Conditional)
Sets a conditional breakpoint after a statement.

B (Before)
Sets an unconditional breakpoint before a statement.

BC (Before Conditional)
Sets a conditional breakpoint before a statement.
1-12 Xpediter/CICS Assembler User Guide

C/CC (Count)
Sets an execution analysis/count for a statement or range of statements.

D/DD (Delete)
Deletes Afters, Befores, Counts, Keeps, Runtos, Skips, conditional Skips, and Verifies for a
single line or range of statements.

DH (Delete Hex)
Reverts the display of contents of a kept data name from vertical hex format back to
standard format.

GT (Go To)
Repositions the execution pointer (=====>).

H (Hex)
Displays contents of a kept data name in vertical hex format. DH reverts contents back to
standard format.

K/KK (Keep)
Selects one or more data names to be kept on a line or range of statements.

P (Peek)
Transfers to Defined Storage screen (2.3) positioned to the first variable selected.

S/SS (Skip)
Indicates that the selected line or range of lines are to be skipped.

SC (Skip Conditional)
Indicates that the selected line is to be skipped if the specified condition is true.

X/XX (Exclude)
Excludes a line or range of lines.

Z (Runto)
Sets a one-time unconditional breakpoint before the execution of a statement or
instruction. GO will also be issued if you are at a trapped transaction.

PF Key Settings
Xpediter/CICS uses PF keys for command shortcuts. For example, to display HELP
information about the SHOW command, type SHOW in the COMMAND field and press
PF1 (HELP). You can elect to display the current PF key assignments at the bottom of your
non-menu screens. To set this option, use the SET FOOT KEYS command.

The default values for the PF keys are shown in Table 1-2. To customize the PF keys to suit
your individual needs, use the KEYS primary command.
Table 1-2. Default PF Key Settings
PF
Function Description
Key
HELP PF1 Provides help information on the function currently in use.
Product Overview 1-13

Table 1-2. Default PF Key Settings


PF
Function Description
Key
Generates a runto before breakpoint on the source line containing the cursor. If
RUNTO CSR PF2 you are at a trapped task, the GO command will also be issued, and the runto
breakpoint will be deleted when it is subsequently taken.
Ends current function and returns to the next higher level screen. For DB2 screens
END PF3
only, returns to previous screen.
=X PF4 Transfers to the Exit Session screen.
When used with a previously issued FIND command, searches for the next
RFIND PF5
occurrence of the specified data.
Directly transfers from any screen to the Source Listing screen (2.L) or Assembler
LOCATE * PF6
Break/Abend screen (2.20).
UP PF7 Scrolls up through the data portion of a screen or the Help facility.
DOWN PF8 Scrolls down through the data portion of a screen or the Help facility.
Resumes program execution for one instruction or statement, then halts the
GO 1 PF9
program.
Scrolls the data portion of the screen to view data to the left of the current display.
LEFT PF10
On the Memory Display screens (2.2 and 9.2), PF10 acts as the PREV command.
Scrolls the data portion of the screen to view data to the right of the current
RIGHT PF11 display. On the Memory Display screens (2.2 and 9.2), PF11 acts as the NEXT
command.
Steps through program logic by the specified parameters. If no parameters are
GO PF12 specified, resumes program from current location. This key is available in all
situations where resuming is allowed.
Ends the current Xpediter/CICS function and transfers to the highest level System
MENU PF13 Menu. From the Help facility or the Primary Menu, the copyright and trade secret
notices are displayed.
Transfers to the Memory Display screens (2.2). On the Primary Menu, PF14
MEMORY PF14
displays the copyright and trade secret notices.
Selects a function from a menu or selection screen, or lists the sixteen most
SELECT PF15
recently accessed addresses from the Memory Display screens (2.2 and 9.2).
Transfers to the Working Storage screen (2.3) for COBOL, the Defined Storage
WS, DS, or VS PF16
screen (2.3) for Assembler, or the Variable Storage screen (2.3) for PL/I and C.
=2.4 PF17 Transfers to the Program Trace screen (2.4).
=2.8 PF18 Transfers to the Last 3270 screen (2.8).
UP MAX PF19 Scrolls up the maximum amount possible.
DOWN MAX PF20 Scrolls down the maximum amount possible.
FILE PF21 Transfers to the File Utility Menu (5).
DLEFT PF22 Scrolls the data in the keep window to view data to the left of the current display.
Scrolls the data in the keep window to view data to the right of the current
DRIGHT PF23
display.
Displays the last command entered in the COMMAND field, allowing it to be
RETRIEVE PF24
changed or reissued.

Update Password Security


The Update Security field provides security from memory updates on selected screens.
When this security is implemented by the Xpediter/CICS system administrator,
unauthorized users are prevented from making updates on the following screens:

• 2.2 Memory Display (XPED/XPRT)


• 2.D DSECTs (XPED/XPRT)
• 5.1.3 Edit CICS Dataset Record
• 5.2.3 Edit Queued Record
• 5.3.2 Edit Transient Data Queue Record
• 5.4.4 Edit DL/I Segment
• 5.5.5 DB2 Edit Result Table Row
• 5.5.6 DB2 Edit Composite Column
• 5.6.3 Update MQ Queue Message
1-14 Xpediter/CICS Assembler User Guide

• 9.2 Memory Display (XPSP)


• 9.D DSECTs (XPSP).

When this facility is enabled, the following field is displayed on the screen when using a
given transaction:

UPDATE PASSWORD: xxxxxxxx

Where xxxxxxxx is a non-displayed field used for entering the password.

To update memory displayed on the screen, enter the password and modify the data to be
changed before pressing Enter or a PF key. If no password is entered or the password is
invalid, all modifications to the data area of the screen are ignored. If memory is not
updated, you receive a message indicating why the update was bypassed.
2-1

Chapter 2.
Getting Started Chap 2

This chapter gives you the basic information needed to start using Xpediter/CICS. It
discusses the steps necessary to prepare your program for execution, including
compiling, processing, and loading a new copy. The chapter also discusses how to access,
navigate through, and exit Xpediter/CICS.

Take a few minutes to read this chapter before starting the exercises in this guide. It
answers many common questions.

Preparing a Program for Execution


It is possible to debug a program without any preparation other than entering XPED and
your program name. You work at the operation-code level, set breakpoints and examine
program storage using offsets. This process is called sourceless debugging. Sourceless
debugging is valuable when working with programs that can’t be recompiled, such as
vendor packages or production versions of programs.

For examples of sourceless debugging, refer to Chapter 4, “Debugging Applications


Without Source Code” which also includes information on using Xpediter’s
PSEUDOSOURCE command.

The typical method of debugging programs, however, is to use Xpediter’s source-level


support for Assembler languages.

To take advantage of this support, you must run your Assembler programs through the
Assembler language processor, which provides you with the following functionality
during a debugging session:

• Set one or more breakpoints to stop execution at any statement. Breakpoints may be:
– Unconditional: Halts program execution at the selected statement.
– Conditional: Halts program execution only if the specified condition is met.
• Examine program storage by data name.
• Select data fields for viewing during program execution.
• Resume execution at any statement.
• Change the execution point by statement number.
• Examine the statement-level trace during or after execution.

Language processing lets you work with the code in the way you are accustomed to
seeing it: at the source level. The next section discusses the Compuware language
processor and how to get source-level support.

The Compuware Language Processor


The Compuware language processor is a set of programs that captures information about
a compiler listing and stores it in a source listing file, also known as a DDIO file. You
have the option to use either the preprocessor or the postprocessor.
2-2 Xpediter/CICS Assembler User Guide

As certain information is not available from the compiler listing, Compuware


recommends that you use the preprocessor because it gathers additional information and
provides you with the following benefits:

• Simplified JCL: While the postprocessor requires that the user add a step after the
compile step, the preprocessor requires only that the EXEC name be altered and a
CWPDDIO DD card and CWPPRMO DD card be added.
• Automated print options: The postprocessor requires that certain compiler options
be specified in order to print all needed sections of the compiler listing. The
preprocessor can automatically pass the required options to the compiler.
• Capturing of suppressed source code: When Assembler PRINT OFF or PRINT
NOGEN is used, sections of source code can be suppressed from the compiler listing.
The preprocessor can capture this information from the compiler before the data is
suppressed from the listing. This provides improved debugging under CICS.

To enable source-level support, the language processor must be installed. The most up to
date version of Compuware Shared Services is furnished with Xpediter/CICS and is
usually installed as part of the Xpediter installation process. For information on how to
install the Compuware Shared Services language processor, refer to the Xpediter/CICS
Installation and Configuration Guide and the Enterprise Common Components Installation and
Customization Guide.

During a debugging session, Xpediter/CICS searches the source listing file for an entry
that matches your program name. It also checks the compile date and time. For
Assembler and PL/I, if no compile date and time are found in the load module, Xpediter
checks the ASMSTMP or PL1STMP parameter in the global table. If the parameter is set to
YES (the default), the NO SOURCE AVAILABLE message is displayed. Press the help PF key
(default PF1) for specific information. If the parameter is set to NO, Xpediter bypasses
timestamp validation and continues. For more information on these parameters and how
to create a timestamp in Assembler and PL/I programs, refer to Chapter 5, “Global
Parameters Table” in the Xpediter/CICS Installation and Configuration Guide.

Using the NEWCOPY Function


Whenever a program is recompiled, a new copy of the program must be loaded in CICS
before attempting to test the recompiled version with Xpediter/CICS. The Xpediter
NEWC transaction should be used instead of the CEMT transactions to load a new copy
of a program into CICS.

The NEWC transaction loads a new copy and resets generic breakpoints. Generic
breakpoints are those set without reference to a specific statement number or offset, such
as those created by the commands BEFORE ALL PARA and AFTER ALL EXEC. Explicit,
non-generic breakpoints are set with commands such as BEFORE 100 and AFTER +24 — as
well as the line commands B, A, and C — and are deleted from the new copy of the
program created with the NEWC transaction.

To use the NEWC transaction, type NEWC followed by the program name on a blank
CICS screen. If the NEWCOPY is successful, the following message is displayed:

NEWC CWDEMCB2
MXDNC0001I 01 Jan 2006 09:00:00 - SYSID=C123 - APPLID=CICSC123
Program 'CWDEMCB2' newcopy successful Len(00021E8)..

The program name in the first line of the message may be overtyped to issue an
additional NEWCOPY request.

If the program is in use or the program name is entered incorrectly, error messages are
returned. Any authorized user in the region can NEWCOPY a program; if the program is
in use, an error message is issued, but the program is not disabled.

For more information on the NEWCOPY function, refer to the Xpediter/CICS Reference
Manual.
Getting Started 2-3

Accessing Xpediter/CICS
There are three ways to access Xpediter/CICS:

• Basic access
• Fast-path access to the Source Listing screen (2.L)
• Direct access to selected screens.

Any of the three transactions, XPED, XPRT, or XPSP, can be used with each method.
XPED and XPRT automatically issue the abend trap facility to trap any potential abends
in your program before they can actually occur.

Xpediter can also be configured to run in any of three restricted modes of operation:

• Diagnosis Mode
• Utilities Mode
• Diagnosis/Utilities Mode.

For more information, see the Xpediter/CICS Reference Manual.

Note: All descriptions in this manual, unless otherwise noted, pertain to Xpediter’s
standard, non-restricted operating mode.

Basic Access
The easiest way to access Xpediter/CICS is by entering XPED, XPRT, or XPSP on a blank
CICS screen and pressing Enter. XPED and XPRT take you to the Primary Menu shown in
Figure 2-1. XPSP takes you to a similar Primary Menu with additional functions for
system programmers. The Primary Menu will only display certain choices if the
corresponding Compuware product or functionality—such as Xpediter/Xchange,
Xpediter/Code Coverage, or CICSPlex support—is installed and active in the CICS region.

Figure 2-1. Primary Menu

-------------------- XPEDITER/CICS 09.04.00 - PRIMARY MENU ----------------C123


COMMAND ===>
MODULE: CSECT:

0 SESSION PROFILE - Set default session attributes
1 SESSION CONTROL - Analyze summary of session events
2 DEBUGGING FACILITIES - Interactively debug application programs
5 FILE UTILITY - Access datasets, temp stg, trans data, DLI, DB2
7 ABEND-AID FOR CICS - Interface to Abend-AID for CICS

C CODE COVERAGE - Interface to Xpediter/Code Coverage
G XCHANGE/CICS - Interface to Xpediter/Xchange CICS Facilities
P CICSPLEX FACILITIES - Access CICSPlex Control Facilities
X EXIT - Exit Xpediter

To set breakpoints in your program or keep specific data fields,
enter your program name and use either the SOURCE command or PF key.

For Online Technical Support refer to: http://frontline.compuware.com


NOTICE: Press PF2/PF14 to display the Copyright/Trade Secret Notice
2-4 Xpediter/CICS Assembler User Guide

From the Primary Menu, you can:

• Transfer to any of the options shown on the menu by typing the appropriate number
and pressing Enter.
• Type a program name in the MODULE field and press the LOCATE * PF key (default
PF6) to transfer to the Source Listing screen (2.L).
• Press Clear to return to CICS to start your application.

Fast-Path Access to the Source Listing screen (2.L)


To directly access the Source Listing screen (2.L), enter an Xpediter/CICS transaction,
followed by the load module name. This can be done, for example, by typing XPED
CWDEMASM and pressing Enter. The Source Listing screen (2.L) is displayed for the
Xpediter/CICS Assembler demonstration program CWDEMASM. You can also specify a
load module and CSECT combination separated by a colon (:).

From here you can set breakpoints in your programs, select variables to keep for viewing,
set up an execution analysis, specify statements to be skipped, or transfer to another
screen.

Figure 2-2. Accessing the Source Listing Screen (2.L) Using the Fast-Path Method

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 02 JUL 2002 - 12.05
------ --------------------------------------------------------------------->
000390 + STM 14,12,12(13) SAVE CALLER'S REGISTERS @BBAC8
000391 +*********************************************************************
000392 +* ESTABLISH CODE ADDRESSIBILITY
000393 +*********************************************************************
000394 + USING *-4,3 @BBAC8
000395 + LR 3,15 @BBAC8
000396 +*********************************************************************
000397 +* OBTAIN DYNAMIC STORAGE
000398 +*********************************************************************
000399 + BAL 1,*+8 @L
000400 + DC AL2(DFHEIEND-DFHEISTG) LENGTH OF STORAGE @L
000401 + DC H'0' IDENTIFIES CICS 1.7 LEVEL @L
000402 + L 15,=V(DFHEAI0) @F8E1S @L
000403 + BALR 14,15 OBTAIN STORAGE @F8E1S @L
000404 + ST 13,DFHEISA-DFHEISTG+4(,1) CHAIN TO CALLER'S @F8E1S @L
000405 + LR 15,1 ADDRESS OF STORAGE @F8E1S @L
000406 + ICM 1,B'1111',24(13) RESTORE INPUT REGISTER 1 @F8E1S @L
000407 + BZ *+10 IF ARGUMENT LIST EXISTS @L
000408 + MVC DFHEIBP-DFHEISTG(L'DFHEIBP+L'DFHEICAP,15),0(1)
------ + THEN COPY EIB AND CA PTRS @L

Direct Access to Selected Screens


When you know the screen that you want to access, enter an Xpediter/CICS transaction,
followed by the screen ID. For example, type XPED 5 and press Enter to display the File
Utility Menu (5).

Navigating Through Xpediter/CICS


Xpediter/CICS uses techniques similar to ISPF to transfer from screen to screen. The
following methods are used to navigate through Xpediter/CICS:

• Type one of the screen numbers from a displayed menu in the COMMAND field and
press Enter.
Getting Started 2-5

• Move the cursor next to the desired screen number on a menu, type S, and press
Enter.
• Transfer between screens by typing = followed by the screen ID. For example, type
=5.1 in the COMMAND field and press Enter to transfer to the CICS Datasets Menu
(5.1).
• Use PF keys to transfer to commonly used screens. The PF keys and defaults for the
corresponding screens are as follows:

PF6 LOCATE * (2.L or 2.20)


PF13 Primary Menu
PF14 Memory Display screen (2.2)
PF16 Defined Storage screen (2.3)
PF17 Program Trace screen (2.4)
PF21 File Utility Menu (5).

• Access the Source Listing screen (2.L) from any product screen with the LOCATE *
primary command. For more information, refer to the Xpediter/CICS Reference Manual.
• Exit Xpediter/CICS by typing =X in the COMMAND field and pressing Enter.

Exiting Xpediter/CICS and Ending a Debugging Session


All of the breakpoints, skips, counts, and keeps you set are associated with your terminal.
When you finish testing, it is very important that you end your debugging session. This
frees up any resources that may have been used during the session (including abend traps
which intercept programs when they abend) and releases all breakpoints, keeps, skips,
and counts from your programs.

Ending a Session
1. Type =X in the COMMAND field on any Xpediter/CICS screen. If you are not
currently in Xpediter/CICS, type XPED X on a blank CICS screen. Press Enter. The
Exit Session screen (X) appears as shown in Figure 2-3.

Figure 2-3. Exit Session Screen (X)

----------------------- XPEDITER/CICS - EXIT SESSION (X) ------------------C123


COMMAND ===>
MODULE: CSECT:

END SESSION: NO YES terminates the session, cleans up resources, and
frees any waiting remote tasks. NO returns to CICS
and leaves Xpediter active.

DUMP OPTION: YES YES forces a dump (or Abend-AID for CICS report) for
any active abends currently trapped by this terminal.
The site options for dump suppression have precedence.

POST SCRIPT: Script to execute at session termination.

PROGRAMS WITH BREAKS: 000
PROTECTION ENTRIES: 000
ACTIVE ABEND TRAPS: 001 (Individual trap entries set by this terminal)
WAITING TASKS: 000 (Active remote traps that have not been processed)

Press ENTER to process options.
2-6 Xpediter/CICS Assembler User Guide

2. Type Y (for YES) in the END SESSION field.


3. If you had trapped a transaction and would like a dump, type Y in the DUMP
OPTION field.
4. If you would like to execute a user or system script, type the script member name in
the POST SCRIPT field.
5. Press Enter. Xpediter/CICS displays the message XPEDITER/CICS SESSION
TERMINATED - SYSID=C123 to show that any resources used during the debugging
session are released.

You may also exit Xpediter directly, bypassing the Exit Session screen (X), by typing
XPND on a blank CICS screen.

The Resource Summary screen (1.P) can be used to release breakpoints set from the local
terminal, and the XPSP transaction’s Resource Summary screen (9.P) can be used to
release breakpoints from programs in the entire CICS region. This is especially helpful if
your site uses autoinstall terminals and you sign off CICS without ending an
Xpediter/CICS session. For more information, see the screen descriptions for the
Resource Summary screens (1.P and 9.P) in the Xpediter/CICS Reference Manual.
3-1

Chapter 3.
Testing an Assembler Program Chap 3

This chapter demonstrates how to test an Assembler application program, first without
setting breakpoints, and then by setting breakpoints and stepping through the code. You
will use the XPED transaction to test an application transaction (XASM) and fix an
abend. XASM is the sample demonstration transaction shipped with Xpediter/CICS. It is
a simple employee payroll transaction that executes the Assembler program
CWDEMASM. The XASM transaction is used throughout this guide to cause several types
of abends.

If you have questions about what screen to use for a function, the Xpediter/CICS Quick
Reference contains a list of screen IDs and titles, default PF key settings, and commands.

Note: The demonstrations in this chapter should be performed in Xpediter’s standard


operating mode — not one of the three restricted modes. For more information,
see the Xpediter/CICS Reference Manual.

Testing without Breakpoints


1. On a blank CICS screen, type XPED and press Enter.
This activates Xpediter/CICS, sets the abend trap option, and displays the Primary
Menu as shown in Figure 3-1. The Primary Menu will only display certain choices if
the corresponding Compuware product or functionality—such as Xpediter/Xchange,
Xpediter/Code Coverage, or CICSPlex support—is installed and active in the CICS
region.

Figure 3-1. Primary Menu (XPED/XPRT)

-------------------- XPEDITER/CICS 09.04.00 - PRIMARY MENU ----------------C123


COMMAND ===>
MODULE: CSECT:

0 SESSION PROFILE - Set default session attributes
1 SESSION CONTROL - Analyze summary of session events
2 DEBUGGING FACILITIES - Interactively debug application programs
5 FILE UTILITY - Access datasets, temp stg, trans data, DLI, DB2
7 ABEND-AID FOR CICS - Interface to Abend-AID for CICS

C CODE COVERAGE - Interface to Xpediter/Code Coverage
G XCHANGE/CICS - Interface to Xpediter/Xchange CICS Facilities
P CICSPLEX FACILITIES - Access CICSPlex Control Facilities
X EXIT - Exit Xpediter

To set breakpoints in your program or keep specific data fields,
enter your program name and use either the SOURCE command or PF key.

For Online Technical Support refer to: http://frontline.compuware.com


NOTICE: Press PF2/PF14 to display the Copyright/Trade Secret Notice

Xpediter/CICS is now turned on and ready to intercept any abends that may occur.
3-2 Xpediter/CICS Assembler User Guide

2. To turn on the trace facility, type SET TRACE ON on the COMMAND line and press
Enter.
3. Press Clear to return to CICS to start your test.
4. On a blank CICS screen, type XASM and press Enter. The Demonstration Transaction
screen appears as shown in Figure 3-2.

Figure 3-2. Demonstration Transaction Screen

XASM _____ - ENTER EMPLOYEE NUMBER C123



*** COMPUWARE CORPORATION ***
DEMONSTRATION TRANSACTION

ENTER DESIRED EMPLOYEE ABOVE:
00001 - CAUSES ASRA ABEND
00002 - AEIM ABEND
00003 - AEIP ABEND
00999 - ENDS NORMALLY

5. To cause an ASRA abend, type 00001 and press Enter. The CWDEMASM demo
program is intercepted when the abend occurs, and the Source Listing screen (2.L) is
displayed. This gives you the opportunity to fix the problem, re-execute the
statement, and continue the test. The display is “clipped” to show only the source
code.
6. If you prefer to also see the OPCODE, type SET JUST OFF and press Enter. The display
shows the offset and assembly from the source listing, as shown in Figure 3-3.

Note: The line numbers shown in this guide may vary from those seen during actual
program execution.

Figure 3-3. Executing SET JUST OFF on the Assembler Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->
CURRPAY PL5 +9
WRKHOUR PL3 ?????
**END**


------ ----------------------------- ASRA (DATA EXCEPTION) at CWDEMASM.603 ->
000600 00024C D200 D26B D24B MVC CURRPAY+4(1),WRKRATE MOVE WRK
000601 * IF 00001 WAS ENTERED, AN ASRA WILL
000602 * OCCUR ON THE FOLLOWING INSTRUCTION....
=====> 000252 FC42 D267 D25A MP CURRPAY,WRKHOUR MULTIPLY
000604 000258 D204 D26F D267 MVC CURRTAXS+2(5),CURRPAY MOVE CUR
000605 00025E FC61 D26D D24C MP CURRTAXS,WRKTAX MULTIPLY
000606 000264 FA44 D24E D267 AP WRKYTDG,CURRPAY ADD WRKY
000607 00026A FA66 D253 D26D AP WRKYTDT,CURRTAXS ADD WRKY
000608 000270 4100 D7A5 SENDMAP2 LA R0,PAYMAP2 MOVE
000609 000274 4810 D264 LH R1,PAYMP2L SPACES
000610 000278 41E0 D7A4 LA R14,SPACES2 TO
000611 00027C 58F0 33F4 L R15,=X'40000000' MAP
000612 000280 0E0E MVCL R0,R14 TWO.
000613 000282 D21C D7A5 D3DC MVC PAYTITL1,MAPTITL1 MOVE

The module and CSECT names are displayed on the third line of the screen along
with the assembly date and time to indicate which program is executing. The keep
window is next, where all data items from the current statement are automatically
displayed. The message on the STATUS line, ASRA (DATA EXCEPTION) at
CWDEMASM.603, indicates that an ASRA has been intercepted. In the source
statements that follow, the current statement is identified with an arrow =====>.
Testing an Assembler Program 3-3

In this example, the ASRA occurs because one of the fields in the current statement
contains bad data. Note the value of WRKHOUR. The bad data in this field is causing
the ASRA.
7. The contents of other data items can be checked by using the PEEK primary
command. Type PEEK WRKTAX in the COMMAND field and press Enter.
Xpediter/CICS will transfer to the Defined Storage screen (2.3) with the contents of
WRKTAX positioned to the top of the screen as shown in Figure 3-4.

Figure 3-4. Defined Storage Screen (2.3) Accessed with PEEK Command

-------------------- XPEDITER/CICS - DEFINED STORAGE (2.3) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22


-------- DATA LABEL -------------- -- ATTRIBUTES -- ----+---10----+---20--->
WRKTAX PL2 +20
WRKYTDG PL5 +15000
WRKYTDT PL7 +3000
WRKHOUR PL3 ?????
PAYMP1L H 'X 0050
PAYMP1AL H 'X 032E
PAYMP1BL H 'X 0332
PAYMP2L H 'X 0370
ZEROS1 X 'X 00
CURRPAY PL5 +9
ZEROS2 X 'X 00
CURRTAXS PL7 ?????????????
RATEINCR CL3 000
DUMMYLEN H 'X 0008
DUMMYEMP 0CL8 . F00001
CL3 . F
DUMMYPAY CL5 00001
EMP001 0CL61 NMR. DAVID ABEND456 MAIN

8. Press PF3 (END) to return to the Source Listing screen (2.L).


9. As you could see in Figure 3-3 on page 3-2, the contents of WRKHOUR is non-
numeric. This is designated by question marks (?????) in the field contents. To view
the actual contents of WRKHOUR, do the following:

Note: The following step requires that CSR be entered in your SCROLL field.

a. Place the cursor on WRKHOUR in the keep window and press PF8 (DOWN) to
position it to the top line.
b. Type HEX ON in the COMMAND field and press Enter.
The hex value for WRKHOUR will be displayed in the keep window as shown in
Figure 3-5.
3-4 Xpediter/CICS Assembler User Guide

Figure 3-5. Source Listing Screen (2.L) Showing Contents of WRKHOUR

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->
WRKHOUR PL3 $$$
555
BBB


------ ----------------------------- ASRA (DATA EXCEPTION) at CWDEMASM.603 ->
000600 00024C D200 D26B D24B MVC CURRPAY+4(1),WRKRATE MOVE WRK
000601 * IF 00001 WAS ENTERED, AN ASRA WILL
000602 * OCCUR ON THE FOLLOWING INSTRUCTION....
=====> 000252 FC42 D267 D25A MP CURRPAY,WRKHOUR MULTIPLY
000604 000258 D204 D26F D267 MVC CURRTAXS+2(5),CURRPAY MOVE CUR
000605 00025E FC61 D26D D24C MP CURRTAXS,WRKTAX MULTIPLY
000606 000264 FA44 D24E D267 AP WRKYTDG,CURRPAY ADD WRKY
000607 00026A FA66 D253 D26D AP WRKYTDT,CURRTAXS ADD WRKY
000608 000270 4100 D7A5 SENDMAP2 LA R0,PAYMAP2 MOVE
000609 000274 4810 D264 LH R1,PAYMP2L SPACES
000610 000278 41E0 D7A4 LA R14,SPACES2 TO
000611 00027C 58F0 33F4 L R15,=X'40000000' MAP
000612 000280 0E0E MVCL R0,R14 TWO.
000613 000282 D21C D7A5 D3DC MVC PAYTITL1,MAPTITL1 MOVE

10. Type HEX OFF in the COMMAND field and press Enter.
11. Autokeeps are displayed only for the statement currently executing. To continue
displaying the value of WRKHOUR as you step further through the program, set an
explicit keep as follows:
a. Move the cursor next to WRKHOUR in the keep window.
b. Type K and press Enter.
Another way to set this keep would be to type KEEP WRKHOUR in the COMMAND
field and press Enter.
A feature called Intelligent Autokeeps is an extension to Xpediter’s autokeep facility.
This feature is enabled by default, but can be disabled in your individual profile
settings. With Intelligent Autokeeps enabled, if an autokeep variable could be
modified by the execution of the current statement, it will be redisplayed in the keep
window when you step to the next statement. This intellikeep can often eliminate the
need to set, then later remove, an explicit keep. The Intelligent Autokeeps feature
will not display an autokeep if a duplicate explicit keep has been set.

Note: For a more complete explanation of autokeeps and the Intelligent Autokeeps
feature, Compuware encourages you to use the HELP AUTOKEEPS and HELP
INTELLIKEEPS commands built into Xpediter/CICS. These Help topics
provide highly detailed information and examples, as well as performing
real-time evaluations to point out any restrictions you might encounter
while attempting to use these facilities.

12. At this point, two methods can be used to prevent the ASRA abend from occurring:
a. The first method is to change the value of WRKHOUR to a valid number:
1. Change ????? to 40 and press Enter. This can be done for the explicit keep or
the autokeep for WRKHOUR.
2. Press PF9 (GO 1) to get to the next statement as shown in Figure 3-6.
Testing an Assembler Program 3-5

Figure 3-6. Changing the Value of WRKHOUR on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ****** ASM-INST AT OFFSET 0252 EXECUTED STEP=00001 *******
------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->
K WRKHOUR PL3 +40
CURRTAXS PL7 ?????????????
CURRPAY PL5 +360
**END**

------ ----------------------------------------------- Before CWDEMASM.604 ->
000600 00024C D200 D26B D24B MVC CURRPAY+4(1),WRKRATE MOVE WRK
000601 * IF 00001 WAS ENTERED, AN ASRA WILL
000602 * OCCUR ON THE FOLLOWING INSTRUCTION....
000603 000252 FC42 D267 D25A MP CURRPAY,WRKHOUR MULTIPLY
=====> 000258 D204 D26F D267 MVC CURRTAXS+2(5),CURRPAY MOVE CUR
000605 00025E FC61 D26D D24C MP CURRTAXS,WRKTAX MULTIPLY
000606 000264 FA44 D24E D267 AP WRKYTDG,CURRPAY ADD WRKY
000607 00026A FA66 D253 D26D AP WRKYTDT,CURRTAXS ADD WRKY
000608 000270 4100 D7A5 SENDMAP2 LA R0,PAYMAP2 MOVE
000609 000274 4810 D264 LH R1,PAYMP2L SPACES
000610 000278 41E0 D7A4 LA R14,SPACES2 TO
000611 00027C 58F0 33F4 L R15,=X'40000000' MAP
000612 000280 0E0E MVCL R0,R14 TWO.
000613 000282 D21C D7A5 D3DC MVC PAYTITL1,MAPTITL1 MOVE

b. Instead of changing the value number, the second method is to change the
Assembler instruction using the VERIFY command.

Note: The line numbers shown in this guide may vary from those seen during actual
program execution. For correct results, use the applicable line numbers seen
on your screen.

1. Type GT on statement 603 and press Enter.


2. Type VERIFY 603 on the COMMAND line and press Enter. The result of the
VERIFY command is shown in figure Figure 3-7.

Note: The VERIFY command does not allow instructions to be altered for
programs residing in (E)RDSA. The message <- PROT STG will be
displayed on the line where you tried to set the verify.

Figure 3-7. Changing the Value of WRKHOUR Using the VERIFY Command

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM *********************** VERIFY set ************************
------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->
K WRKHOUR PL3 +40
CURRPAY PL5 +360
**END**


------ ----------------------------------------------- Before CWDEMASM.603 ->
000600 00024C D200 D26B D24B MVC CURRPAY+4(1),WRKRATE MOVE WRK
000601 * IF 00001 WAS ENTERED, AN ASRA WILL
000602 * OCCUR ON THE FOLLOWING INSTRUCTION....
=====> MP FC42 D267 D25A <- PROT STG MP CURRPAY,WRKHOUR MULTIPLY
000604 000258 D204 D26F D267 MVC CURRTAXS+2(5),CURRPAY MOVE CUR
000605 00025E FC61 D26D D24C MP CURRTAXS,WRKTAX MULTIPLY
000606 000264 FA44 D24E D267 AP WRKYTDG,CURRPAY ADD WRKY
000607 00026A FA66 D253 D26D AP WRKYTDT,CURRTAXS ADD WRKY
000608 000270 4100 D7A5 SENDMAP2 LA R0,PAYMAP2 MOVE
000609 000274 4810 D264 LH R1,PAYMP2L SPACES
000610 000278 41E0 D7A4 LA R14,SPACES2 TO
000611 00027C 58F0 33F4 L R15,=X'40000000' MAP
000612 000280 0E0E MVCL R0,R14 TWO.
000613 000282 D21C D7A5 D3DC MVC PAYTITL1,MAPTITL1 MOVE
3-6 Xpediter/CICS Assembler User Guide

c. If WRKHOUR still had bad data, you could get temporarily past the ASRA by
changing the instruction to multiply CURRPAY by PAYHOUR9 as follows:
1. Change the second operand of the instruction from D25A to D2F9 and press
Enter.
2. Press PF9 to single-step past the modified instruction.
You have now changed the value of CURRPAY, and temporarily corrected the ASRA.
13. Press PF12 (GO) to continue processing. If any other abends occur, Xpediter/CICS
will intercept them. Upon completion, the Transaction Complete screen is displayed
(Figure 3-8). The GROSS PAY shown will depend on the way in which you resolved
the abend.

Figure 3-8. Transaction Complete Screen

*** COMPUWARE CORPORATION ***


DEMONSTRATION TRANSACTION

EMPLOYEE NUMBER: 00001
EMPLOYEE NAME: MR. DAVID ABEND
HOURS WORKED: 00040
HOURLY RATE: 9.00
GROSS PAY: 0000360.00

*** TRANSACTION COMPLETE ***

14. Always end your debugging session as described in “Exiting Xpediter/CICS and
Ending a Debugging Session” on page 2-5.

Creating a Special Profile for Assembler Debugging


If you will be working with both COBOL and Assembler programs, you may want to set
up a special profile for Assembler debugging. This profile allows you to customize the
screens to display specific information you need while debugging Assembler programs. In
the previous example, we used the SET JUST OFF command to see the OPCODE in the
Assembler listing. The following steps show how to set up a profile so the OPCODE is
always displayed:

1. From a blank CICS screen, type XPED 0.1 and press Enter. The Set Profile Defaults
screen (0.1) appears (Figure 3-9).
Testing an Assembler Program 3-7

Figure 3-9. Set Profile Defaults Screen (0.1)

------------------ XPEDITER/CICS - SET PROFILE DEFAULTS (0.1) -------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:

PROFILE ===> ABCDEFG Current profile name
DESCRIPTION ==> This is a 44-position free-form field.

DEBUGGING OPTIONS:
FOOT ===> OFF (ANALYZE/DATA/KEYS/MENU/REGS/FLOAT/SOURCE/STATUS/OFF)
DELAY ===> 0 (0-20) Set default wait intervals for stepping
TRACE ===> OFF (ON/OFF) Trace program execution in the background
PROTECT ===> OFF (ON/OFF) Intercept all storage violations
MAXSTEP ===> 20 (1-99) Set default maximum value for execution
REGISTERS ===> 64 (32/64) Register format, if z/Architecture active

TRAP OPTIONS:
TRAP ===> ON (ON/OFF) Intercept all abends
SAVE TRAPS ===> ON (ON/OFF) Save traps automatically at session end
LOAD TRAPS ===> ON (ON/OFF) Load saved traps at session start

SOURCE OPTIONS:
SOURCE ===> ON (ON/OFF) Show source display at entry
JUSTIFY ===> ON (ON/OFF) Display the source segment of listing
OPTWARN ===> ON (ON/OFF) Program optimized warning message

2. Type OFF in the JUSTIFY field and press Enter. This has the same effect as the SET
JUST OFF command.

Note: You may also want to set the footing to one of the following options:

• FLOAT
• REGS
• STATUS
• SOURCE.
Refer to the Xpediter/CICS Reference Manual for profile options.
3. Type ASSEM in the PROFILE field of the 0.1 screen and press Enter. If that profile
name does not already exist, you are transferred to the LOAD PROFILE (0.4) screen.
4. Type =0.5 in the COMMAND field of the screen displayed and press Enter. The Save
Profile screen (0.5) (Figure 3-10) is displayed. You can use this screen to create a new
user profile.

Figure 3-10. Save Profile Screen (0.5)

---------------------- XPEDITER/CICS - SAVE PROFILE (0.5) -----------------C123


COMMAND ===>
MODULE: CSECT:

SAVE DEFAULT VALUES TO PROFILE ===> XPEDITER


To save the current profile, specify the profile name and press ENTER.

5. Type ASSEM in the SAVE DEFAULTS VALUES TO PROFILE field and press Enter. The
new session options are stored in the profile file under the name ASSEM.
For more information on profiles and their uses, see Chapter 10, “Setting Up a
Profile”.
3-8 Xpediter/CICS Assembler User Guide

Viewing Assembler Source


In the last example, the program was executed without setting breakpoints. This example
shows how to set breakpoints in a program.

From a cleared CICS screen type XPED CWDEMASM P=ASSEM and press Enter.
Xpediter/CICS automatically loads your profile and displays the source for CWDEMASM
(Figure 3-11).

Figure 3-11. Displaying Assembler Source on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------ --------------------------------------------------------------------->
000390 000000 90EC D00C + STM 14,12,12(13) SAVE CALLE
000391 +*********************************************
000392 +* ESTABLISH CODE ADDRESSIBILITY
000393 +*********************************************
000394 + USING *-4,3
000395 000004 183F + LR 3,15
000396 +*********************************************
000397 +* OBTAIN DYNAMIC STORAGE
000398 +*********************************************
000399 000006 4510 300E + BAL 1,*+8
000400 00000A 0BA2 + DC AL2(DFHEIEND-DFHEISTG) LENGTH
000401 00000C 0000 + DC H'0' IDENTIFIES
000402 00000E 58F0 33E8 + L 15,=V(DFHEAI0)
000403 000012 05EF + BALR 14,15 OBTAIN STO
000404 000014 50D0 1004 + ST 13,DFHEISA-DFHEISTG+4(,1) CHA
000405 000018 18F1 + LR 15,1 ADDRESS OF
000406 00001A BF1F D018 + ICM 1,B'1111',24(13) RESTORE IN
000407 00001E 4780 3028 + BZ *+10 IF ARGUMEN
000408 000022 D207 F05C 1000 + MVC DFHEIBP-DFHEISTG(L'DFHEIBP+L'D
------ + THEN COPY

Setting Program Breakpoints


Next, we will set breakpoints in the Assembler program. You can set breakpoints to halt
execution of the program. Breakpoints are set at any executable instruction and are
executed either before or after the statement is executed. There are two types:

• Unconditional Breakpoints: Halt program execution at the selected statement.


Intercepts, described in “Intercept Summary (1.7)” on page 3-12, are a subset of
unconditional breakpoints. Runtos are one-time before breakpoints. Setting a runto
breakpoint also issues the GO command if a task has been trapped at a break or stop.
After the runto breakpoint has been taken, it is deleted.
• Conditional Breakpoints: Halt program execution only if the specified condition is
met. Conditional breakpoints can be set on Assembler datanames.
1. Type BEFORE ALL WRKHOUR in the COMMAND field and press Enter. This
command sets a breakpoint before every statement that directly references
WRKHOUR.
2. To see where the breakpoints are set, type SHOW BREAKS and press Enter. The
Source Listing screen (2.L) appears as shown in Figure 3-12.
Xpediter/CICS displays all statements where the breakpoints are set. The B indicates
that the breakpoints occur before the instruction is executed.
Testing an Assembler Program 3-9

Figure 3-12. Displaying Breakpoints on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------ --------------------------------------------------------------------->
- - - - - - - - - - - - - - - - - - 396 LINE(S) NOT DISPLAYED
000435 B 00004A F820 D25A 3482 ZAP WRKHOUR,=P'0' INIT WRK
- - - - - - - - - - - - - - - - - - 182 LINE(S) NOT DISPLAYED
000603 B 000252 FC42 D267 D25A MP CURRPAY,WRKHOUR MULTIPLY
- - - - - - - - - - - - - - - - - - 20 LINE(S) NOT DISPLAYED
000624 B 0002C4 F342 D947 D25A UNPK HRSWRKD,WRKHOUR SEND
- - - - - - - - - - - - - - - - - - 662 LINE(S) NOT DISPLAYED
**************************** BOTTOM OF DATA **************************

3. To delete the first breakpoint, set at offset 4A in this example, type BEFORE OFF +4A
in the COMMAND field and press Enter. The statement remains on the screen, but
the B indicator is removed.

Note: You can also use a line command to delete breakpoints. Place the cursor on
the line number of the statement, type D (Delete), and press Enter.

4. Type AFTER +30C in the COMMAND field and press Enter. This sets a breakpoint
after the final map is sent.
5. Type SHOW BREAKS in the COMMAND field and press Enter. The display of
breakpoints is updated.
6. Type RESET in the COMMAND field and press Enter to redisplay the excluded lines.

Some breakpoints have now been set in this example. The program is ready to test.

Executing the Program


1. Press Clear to return to CICS.
2. Type XASM and press Enter. The Demonstration Transaction screen appears as shown
in Figure 3-2 on page 3-2.
3. Type 00001 and press Enter. The program execution is halted as shown in Figure 3-
13.
Note that the message above the source code indicates where the program has
stopped, and the execution pointer (=====>) points to the current statement.
3-10 Xpediter/CICS Assembler User Guide

Figure 3-13. Intercepting a Breakpoint on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->
WRKHOUR PL3 ?????
CURRPAY PL5 +9
**END**


------ ----------------------------------------------- Before CWDEMASM.603 ->
000600 00024C D200 D26B D24B MVC CURRPAY+4(1),WRKRATE MOVE WRK
000601 * IF 00001 WAS ENTERED, AN ASRA WILL
000602 * OCCUR ON THE FOLLOWING INSTRUCTION....
=====> B 000252 FC42 D267 D25A MP CURRPAY,WRKHOUR MULTIPLY
000604 000258 D204 D26F D267 MVC CURRTAXS+2(5),CURRPAY MOVE CUR
000605 00025E FC61 D26D D24C MP CURRTAXS,WRKTAX MULTIPLY
000606 000264 FA44 D24E D267 AP WRKYTDG,CURRPAY ADD WRKY
000607 00026A FA66 D253 D26D AP WRKYTDT,CURRTAXS ADD WRKY
000608 000270 4100 D7A5 SENDMAP2 LA R0,PAYMAP2 MOVE
000609 000274 4810 D264 LH R1,PAYMP2L SPACES
000610 000278 41E0 D7A4 LA R14,SPACES2 TO
000611 00027C 58F0 33F4 L R15,=X'40000000' MAP
000612 000280 0E0E MVCL R0,R14 TWO.
000613 000282 D21C D7A5 D3DC MVC PAYTITL1,MAPTITL1 MOVE

4. Autokeeps are displayed only for the statement currently executing. To continue
displaying the value of WRKHOUR after the current instruction has executed, set an
explicit keep as follows:
a. Move the cursor next to WRKHOUR in the keep window.
b. Type K and press Enter.
Another way to set this keep would be to type KEEP WRKHOUR in the COMMAND
field and press Enter.
5. Overtype the bad data (?????) with 10 and press Enter. The data is changed.

Resuming Program Execution


The GO command is used to resume program execution. In its simplest format, GO
resumes at the current statement. When number (of statements) and delay parameters are
added, GO steps through the program and pauses between each step.

1. Type GO 5 1 in the COMMAND field and press Enter. As shown in Figure 3-14, the
following actions occur:
– Five lines of code are executed with a one-second pause between each statement.
– The execution pointer points to the current statement, which is highlighted.
– A message shows the offset and the number of steps that have executed.
Testing an Assembler Program 3-11

Figure 3-14. Executing GO 5 1 on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ****** ASM-INST AT OFFSET 026A EXECUTED STEP=00005 *******
------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->
K WRKHOUR PL3 +10
PAYMAP2 0CL880 *** COMPUWARE CORPORATIO
**END**


------ ----------------------------------------------- Before CWDEMASM.608 ->
000600 00024C D200 D26B D24B MVC CURRPAY+4(1),WRKRATE MOVE WRK
000601 * IF 00001 WAS ENTERED, AN ASRA WILL
000602 * OCCUR ON THE FOLLOWING INSTRUCTION....
000603 B 000252 FC42 D267 D25A MP CURRPAY,WRKHOUR MULTIPLY
000604 000258 D204 D26F D267 MVC CURRTAXS+2(5),CURRPAY MOVE CUR
000605 00025E FC61 D26D D24C MP CURRTAXS,WRKTAX MULTIPLY
000606 000264 FA44 D24E D267 AP WRKYTDG,CURRPAY ADD WRKY
000607 00026A FA66 D253 D26D AP WRKYTDT,CURRTAXS ADD WRKY
=====> 000270 4100 D7A5 SENDMAP2 LA R0,PAYMAP2 MOVE
000609 000274 4810 D264 LH R1,PAYMP2L SPACES
000610 000278 41E0 D7A4 LA R14,SPACES2 TO
000611 00027C 58F0 33F4 L R15,=X'40000000' MAP
000612 000280 0E0E MVCL R0,R14 TWO.
000613 000282 D21C D7A5 D3DC MVC PAYTITL1,MAPTITL1 MOVE

2. Press PF12 (GO) to continue processing. The execution halts at a breakpoint, and the
Source Listing screen (2.L) is displayed.
3. Position the cursor on line 627, a few lines below the current statement, then press
PF2 (RUNTO CSR). As shown in Figure 3-15 on page 3-11, the execution halts at
statement 627, where the cursor was positioned when PF2 was pressed. Pressing PF2
caused a runto breakpoint to be set on the statement where the cursor was
positioned, a GO command to be issued, and the runto breakpoint to be deleted
automatically after it was taken.

Figure 3-15. PF2 (RUNTO CSR) on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ************** RUNTO breakpoint encountered ***************
------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->
K WRKHOUR PL3 +10
HRSWRKD CL5 0001{
**END**


------ ----------------------------------------------- Before CWDEMASM.627 ->
000621 0002B2 D202 D9EE D473 MVC PAYDEC2,MAPDEC2 TWO
000622 0002B8 D204 D8A7 D486 MVC EMPNUMB,PAYEMP1 AND
000623 0002BE D20E D8F7 D221 MVC EMPNAME,WRKNAME THEN
000624 B 0002C4 F342 D947 D25A UNPK HRSWRKD,WRKHOUR SEND
000625 0002CA F300 D997 D24B UNPK HRLYRAT,WRKRATE IT
000626 0002D0 F364 D9E7 D267 UNPK GROSPAY,CURRPAY TO
=====> 0002D6 96F0 D94B OI HRSWRKD+4,X'F0' THE
000628 0002DA 96F0 D997 OI HRLYRAT,X'F0' SCREEN.
000629 0002DE 96F0 D9ED OI GROSPAY+6,X'F0'
000630 A 0002E2 D21B DA76 3434 MVC PAYMSG(28),=C'*** TRANSACTION
000631 * EXEC CICS SEND FROM(PAYMAP2) LENGTH(
000632 DFHECALL =X'040430000800000081000040
------ 2),(FB_2,PAYMP2L)
000633 +*********************************************

4. Press PF12 (GO) to continue processing. The execution halts at the breakpoint after
the last map was sent.
5. To see the last map, press PF18 to display the Last 3270 screen. It shows that
WRKHOUR was updated successfully.
3-12 Xpediter/CICS Assembler User Guide

6. Press Enter to return to the Source Listing screen (2.L).


7. Press PF12 (GO) to continue processing. The transaction ends, and the XASM
Transaction Complete screen is displayed (Figure 3-16).

Remember to end your debugging session as described in “Exiting Xpediter/CICS and


Ending a Debugging Session” on page 2-5.

Figure 3-16. Demonstration Transaction Screen

*** COMPUWARE CORPORATION *** C123


DEMONSTRATION TRANSACTION

EMPLOYEE NUMBER: 00001
EMPLOYEE NAME: MR. DAVID ABEND
HOURS WORKED: 00010
HOURLY RATE: 9.00
GROSS PAY: 0000090.00

*** TRANSACTION COMPLETE ***

Intercept Summary (1.7)


Before breakpoints can also be set using the Intercept Summary (1.7) screen. This
provides an easy method for entering multiple intercept commands at one time. Before
breakpoints set at the entry point of a CSECT are considered intercepts.

Note: Source listings must be available to set intercepts.

1. Access the Intercept Summary screen by entering 7 on the Session Control (1) Menu
or by entering =1.7 in the COMMAND field.
If any current intercepts for your terminal exist at this time, they are displayed when
the initial screen appears, followed by lines with underscores to enter new data. You
can enter either the load module name or a load module and a CSECT name for
intercepts you want to set. If only the load module name is entered, it is propagated
into the CSECT name to set the intercept.
2. Enter CWDEMASM on the first line under LOAD MODULE.
3. Enter CWDEMASM on the second line under LOAD MODULE, then enter
CWCDSUBA under CSECT.

Figure 3-17. Intercept Summary (1.7)

------------------- XPEDITER/CICS - INTERCEPT SUMMARY (1.7) ---------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.23.01


LOAD
DEL MODULE CSECT LISTING OFFSET STATUS
-----------------------------------------------------------------------------
_ cwdemasm ________________
_ cwdemasm cwcdsuba
_ ________ ________________
_ ________ ________________
_ ________ ________________
_ ________ ________________
_ ________ ________________
Testing an Assembler Program 3-13

4. Press Enter. The screen is refreshed and the result of each new line command is
displayed. If the intercept was successfully set, the LISTING and OFFSET fields are
updated and the STATUS column shows INTERCEPT SET.

Figure 3-18. Intercept Summary with Intercept Set

------------------- XPEDITER/CICS - INTERCEPT SUMMARY (1.7) ---------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: +++++++++++ 2 command(s) complete. Use help key +++++++++++

LOAD
DEL MODULE CSECT LISTING OFFSET STATUS
-----------------------------------------------------------------------------
_ CWDEMASM CWDEMASM CWDEMASM 00000000 INTERCEPT SET
_ CWDEMASM CWCDSUBA CWCDSUBA 00000000 INTERCEPT SET
_ ________ ________________
_ ________ ________________
_ ________ ________________
_ ________ ________________
_ ________ ________________

If there was an error, the data in error is highlighted and an error message is
displayed under STATUS. In our example, both intercepts were successfully set.
5. Clear your screen.
6. Enter XASM. A before breakpoint is taken at the entry point of CWDEMASM.

Figure 3-19. Before Breakpoint Taken

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->





------ ----------------------------------------------- Before CWDEMASM.390 ->
=====> B 000000 90EC D00C + STM 14,12,12(13) SAVE CALLE
000391 +*********************************************
000392 +* ESTABLISH CODE ADDRESSIBILITY
000393 +*********************************************
000394 + USING *-4,3
000395 000004 183F + LR 3,15
000396 +*********************************************
000397 +* OBTAIN DYNAMIC STORAGE
000398 +*********************************************
000399 000006 4510 300E + BAL 1,*+8
000400 00000A 0BA2 + DC AL2(DFHEIEND-DFHEISTG) LENGTH
000401 00000C 0000 + DC H'0' IDENTIFIES
000402 00000E 58F0 33E8 + L 15,=V(DFHEAI0)
000403 000012 05EF + BALR 14,15 OBTAIN STO

7. You can now end your debugging session as described in “Exiting Xpediter/CICS and
Ending a Debugging Session” on page 2-5.

Using Enhanced Traps


“Setting Program Breakpoints” on page 3-8 gave an example of how to set a breakpoint to
halt execution. In this section, we will create an enhanced trap and discuss its affect on
breakpoints and abends.
3-14 Xpediter/CICS Assembler User Guide

Enhanced trapping is an extension of regular trapping. A trap can be enhanced so


breakpoints and abends are only taken when the specified condition is met. That
condition can be a value in the initial COMMAREA (ICA), in a specific container
(CONT+containername), MQ message descriptor (MQMD), or MQ message data (MQD). For
more information, see the description of the Trap Summary screen (1.6 or 9.6) in the
Xpediter/CICS Reference Manual.

Setting an Enhanced Trap on Initial COMMAREA (ICA)


Note: If you are using channels and containers instead of commareas, skip to “Setting
an Enhanced Trap Using Containers (CONT)” on page 3-17.

1. Type XPED CWDEMASM on a blank CICS screen and press Enter. Program
CWDEMASM is displayed on the Source Listing screen (2.L) as shown in Figure 3-20.

Figure 3-20. CWDEMASM on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 22 AUG 2007 - 14.02
------ --------------------------------------------------------------------->
000457 000000 47F0 F028 +DFHEI0003A B DFH0003C Branch aro
000458 + POP USING Restore pr
000459 000004 23 + DC AL1(DFHEI0003B-*-1) Length of
000460 000005 C3E6C4C5D4C1E2D4 + DC CL12'CWDEMASM(U)' Csect (ass
000461 000011 F0F861F2F261F0F7 + DC CL9'08/22/07' Assembly d
000462 00001A F1F44BF0F240 + DC CL6'14.02' Assembly t
000463 000020 C1D3D34040404040 + DC CL8'ALL' PTF number
000464 +DFHEI0003B EQU * End of eye
000467 + PUSH PRINT,NOPRINT
000468 +***** PRINT OFF,NOPRINT bring for
000469 +***** PRINT OFF,NOPRINT dfhgdefs
000470 +*********************************************
000471 +*
000472 +* @BANNER_START@
000473 +* Licensed Materials - Property
000474 +*
000475 +* "Restricted Materials of IBM"
000476 +*
000477 +* 5655-147
000478 +*

2. Type BEFORE ALL WRKHOUR in the COMMAND field and press Enter. This will set
a before breakpoint on any line that references WRKHOUR.
3. Type SHOW BREAKS in the COMMAND field and press Enter. The lines on which
breakpoints have been set will be displayed as shown in Figure 3-21 on page 3-14.

Figure 3-21. Displaying Breakpoints on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 22 AUG 2007 - 14.02
------ --------------------------------------------------------------------->
- - - - - - - - - - - - - - - - - - 690 LINE(S) NOT DISPLAYED
000599 B 000076 F820 D2EA 34FC ZAP WRKHOUR,=P'0' INIT WRK
- - - - - - - - - - - - - - - - - - 202 LINE(S) NOT DISPLAYED
000783 B 0002A4 FC42 D2F7 D2EA MP CURRPAY,WRKHOUR MULTIPLY
- - - - - - - - - - - - - - - - - - 23 LINE(S) NOT DISPLAYED
000804 B 000316 F342 D9DB D2EA UNPK HRSWRKD,WRKHOUR SEND
- - - - - - - - - - - - - - - - - - 683 LINE(S) NOT DISPLAYED
**************************** BOTTOM OF DATA **************************
Testing an Assembler Program 3-15

Note: If your profile specifies TRAP=ON, starting Xpediter automatically creates a trap
based on netname and terminal ID. If TRAP=OFF, the trap is created when you set
a breakpoint.

4. Type RESET and press Enter to display all lines of the source.
5. Type =1.6 in the COMMAND field and press Enter. The Trap Summary screen (1.6) is
displayed (Figure 3-22) showing the trap Xpediter automatically created based on
netname and terminal ID. This assumes that global parameter TRAPNET and
TRAPTRM have to be set to YES.
The breakpoints you set will only be taken when the task is running on netname
ACME0027 and terminal 0027. Abends for that netname and terminal will also be
trapped.

Figure 3-22. Displaying a Trap on the Trap Summary Screen (1.6)

---------------------- XPEDITER/CICS - TRAP SUMMARY (1.6) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 22 AUG 2007 - 14.02
MODE: TERM (IP TERM or ALL) NO IP TRAPS ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert)
M (Move) S (Save)

CMD USERID NETNAME TERM TRAN PROGRAM TRAP ABEND
IF ...................... TRAP CONDITION .......................
---- -------- -------- ---- ---- -------- ---
_ ******** ACME0027 0027 **** ******** YES
IF
_ ________ ________ ____ ____ ________ ___
IF

6. To create an enhanced trap, type ICA(26:4)=T'TEST' in the trap condition field on


the second line of the trap entry following the word IF and press Enter.

Figure 3-23. Enhanced Trap for Initial COMMAREA

---------------------- XPEDITER/CICS - TRAP SUMMARY (1.6) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 22 AUG 2007 - 14.02
MODE: TERM (IP TERM or ALL) NO IP TRAPS ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert)
M (Move) S (Save)

CMD USERID NETNAME TERM TRAN PROGRAM TRAP ABEND
IF ...................... TRAP CONDITION .......................
---- -------- -------- ---- ---- -------- ---
_ ******** ACME0027 0027 **** ******** YES
IF ICA(26:4) = T'TEST'
_ ________ ________ ____ ____ ________ ___
IF

This enhanced trap causes Xpediter to take breakpoints and trap abends only when
both of the following conditions are met:
– The task is running on netname ACME0027 and terminal 0027, and
– The initial DFHCOMMAREA has a value of TEST in the four characters starting at
position 26.
The literal T'TEST' could also have been entered as 'TEST' without the preceding type
specification of T. Because this text type literal is not case-sensitive, you could also
have entered T'test', 'Test', or 'TeSt'.
7. The enhanced trap could also be modified to eliminate the netname and terminal ID
requirements. As shown in Figure 3-24, overtype ACME0027 in the NETNAME field
3-16 Xpediter/CICS Assembler User Guide

and 0027 in the TERM field with all asterisks (*), type CWDEMASM in the
PROGRAM field, and press Enter.
This type of enhanced trap is useful if there are hundreds of terminals executing a
single program, but you only want to stop in that program when the initial
COMMAREA contains the specified value.

Figure 3-24. Enhanced Trap for All Netnames and Terminal IDs Running CWDEMASM

---------------------- XPEDITER/CICS - TRAP SUMMARY (1.6) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 22 AUG 2007 - 14.02
MODE: TERM (IP TERM or ALL) NO IP TRAPS ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert)
M (Move) S (Save)

CMD USERID NETNAME TERM TRAN PROGRAM TRAP ABEND
IF ...................... TRAP CONDITION .......................
---- -------- -------- ---- ---- -------- ---
_ ******** ******** **** **** CWDEMASM YES
IF ICA(26:4) = T'TEST'
_ ________ ________ ____ ____ ________ ___
IF

8. To see how this enhanced trap functions, first press Clear.


9. On the blank CICS screen, type XASM and press Enter. The Demonstration
Transaction screen is displayed as shown in Figure 3-25.

Figure 3-25. Demonstration Transaction Screen

XASM _____ - ENTER EMPLOYEE NUMBER C123



*** COMPUWARE CORPORATION ***
DEMONSTRATION TRANSACTION

ENTER DESIRED EMPLOYEE ABOVE:
00001 - CAUSES ASRA ABEND
00002 - AEIM ABEND
00003 - AEIP ABEND
00999 - ENDS NORMALLY

Notice that the trap was not taken by Xpediter/CICS. This is because the initial
invocation of the pseudo-conversational transaction XASM does not contain a
COMMAREA for the trap criteria to match.
10. Type 00999 for the employee number and press Enter. Now Xpediter traps the
transaction as shown in Figure 3-26 on page 3-17. This is because the second
invocation of the transaction was passed an initial COMMAREA containing the
characters “TEST” in positions 26 through 29 (26:4).
Testing an Assembler Program 3-17

Figure 3-26. Taking an Enhanced Trap for Initial COMMAREA

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 22 AUG 2007 - 14.02
------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->
WRKHOUR PL3 ?????
**END**



------ ----------------------------------------------- Before CWDEMASM.599 ->
000596 000068 0E0E MVCL R0,R14 MOVE LIT
000597 00006A D20F D290 3420 MVC STARTWS,=CL16'* START WS *
000598 000070 D20F DC60 3430 MVC ENDWS,=CL16'* END WS *'
=====> B 000076 F820 D2EA 34FC ZAP WRKHOUR,=P'0' INIT WRK
000600 * EXEC CICS HANDLE AID CLEAR(RETURN)
000601 DFHECALL =X'020680000805000000000000
------ ,RETURN)
000602 +*********************************************
000603 00007C + DS 0H
000604 00007C 4110 D068 + LA 1,DFHEIPL
000605 000080 41E0 34B4 + LA 14,=X'020680000805000000000000
000606 000084 41F0 3450 + LA 15,=A(RETURN)
000607 000088 90EF 1000 + STM 14,15,0(1)
000608 00008C 9680 1004 + OI 4(1),X'80' LAST ARGUM

11. To confirm that the initial COMMAREA satisfied your enhanced trap criteria, first
transfer to the Memory Display screen (2.2) by typing =2.2 in the COMMAND field
and pressing Enter.
12. Type ICA (for Initial Common Area) in the TABLE/AREA field and press Enter.
Xpediter displays the contents of the COMMAREA as shown in Figure 3-27. Notice
the characters “Test” starting 26 bytes (relative to 1) into the initial COMMAREA.

Figure 3-27. Verifying Enhanced Trap for Initial COMMAREA

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 22 AUG 2007 - 14.02
TABLE/AREA: ICA TABLE ENTRY ID: ________
ADDRESS: 38600008 HEX OFFSET: _______________________________
USE CONTENTS: _ ADD OFFSET: _____ EUDSA

CCSID TYPE: EBCDIC
00000000 000 C3969494 81998581 7A40E385 A7A37AE3 * Commarea: Text:T * 38600008
00000010 010 C5E2E340 C3888199 7AE385A2 A340C1A2 * EST Char:Test As * 38600018
00000020 020 8389897A 4C4D6E6F 40C885A7 7A40E385 * cii:<(>? Hex: Te * 38600028
00000030 030 A2A34040 40404040 40404040 40404040 * st * 38600038
00000040 040 40404040 40404040 40404040 40404040 * * 38600048
00000050 050 E4F0F0F0 F0F0F6F1 E4F0F0F0 F0F0F6F1 * U0000061U0000061 * 38600058
00000060 060 E7D7C5C4 C2D4E2C5 34000000 01000018 * XPEDBMSE........ * 38600068
00000070 070 50000082 000000D4 D4000F00 00000000 * &..b...MM....... * 38600078
00000080 080 00000000 385864D0 00000000 00000000 * .......}........ * 38600088
00000090 090 00000000 00000000 00000000 00000000 * ................ * 38600098
000000A0 0A0 E4F0F0F0 F0F0F6F1 E4F0F0F0 F0F0F6F1 * U0000061U0000061 * 386000A8
000000B0 0B0 FC000268 B88FEBC4 C3E6C4C5 D4C1E2D4 * .......DCWDEMASM * 386000B8
000000C0 0C0 38600280 00000005 00000000 00000000 * .-.............. * 386000C8
000000D0 0D0 00281706 00000000 00000260 38600320 * ...........-.-.. * 386000D8
000000E0 0E0 00000000 00000000 C4C6C8C5 C1C94040 * ........DFHEAI * 386000E8
000000F0 0F0 40404040 40404040 00000000 00000026 * ........ * 386000F8

13. End your debugging session by typing XPND on a blank CICS screen and pressing
Enter.

Setting an Enhanced Trap Using Containers (CONT)


1. Type XPED CWDEMACH on a blank CICS screen and press Enter. Program
CWDEMACH is displayed on the Source Listing screen (2.L) as shown in Figure 3-28.
3-18 Xpediter/CICS Assembler User Guide

Figure 3-28. CWDEMACH on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMACH CSECT: CWDEMACH COMPILED: 14 SEP 2006 - 11.35
------ --------------------------------------------------------------------->
000455 000000 47F0 F028 +DFHEI0003A B DFH0003C Branch aro
000456 + POP USING Restore pr
000457 000004 23 + DC AL1(DFHEI0003B-*-1) Length of
000458 000005 C3E6C4C5D4C1C3C8 + DC CL12'CWDEMACH(U)' Csect (ass
000459 000011 F0F961F1F461F0F6 + DC CL9'09/14/06' Assembly d
000460 00001A F1F14BF3F540 + DC CL6'11.35' Assembly t
000461 000020 C5E2C1F6F4F04040 + DC CL8'ESA640' PTF number
000462 +DFHEI0003B EQU * End of eye
000465 + PUSH PRINT,NOPRINT
000466 + PRINT OFF,NOPRINT
000467 +*********************************************
000468 +*
000469 +* @BANNER_START
000470 +* Licensed Materials - Property of IBM
000471 +*
000472 +* "Restricted Materials of IBM"
000473 +*
000474 +* 5655-M15 DFHGDEFS
000475 +*
000476 +* (C) Copyright IBM Corp. 1981, 2003

2. Type BEFORE ALL WRKHOUR in the COMMAND field and press Enter. This will set
a before breakpoint on any line that references WRKHOUR.
3. Type SHOW BREAKS in the COMMAND field and press Enter. The lines on which
breakpoints have been set will be displayed as shown in Figure 3-29.

Figure 3-29. Displaying Breakpoints on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMACH CSECT: CWDEMACH COMPILED: 14 SEP 2006 - 11.35
------ --------------------------------------------------------------------->
- - - - - - - - - - - - - - - - - - 691 LINE(S) NOT DISPLAYED
000599 B 000076 F820 D2EA 35DE ZAP WRKHOUR,=P'0' INIT WRK
- - - - - - - - - - - - - - - - - - 257 LINE(S) NOT DISPLAYED
000830 B 000318 FC42 D2F7 D2EA MP CURRPAY,WRKHOUR MULTIPLY
- - - - - - - - - - - - - - - - - - 23 LINE(S) NOT DISPLAYED
000851 B 00038A F342 D9DB D2EA UNPK HRSWRKD,WRKHOUR SEND
- - - - - - - - - - - - - - - - - - 749 LINE(S) NOT DISPLAYED
**************************** BOTTOM OF DATA **************************

Note: If your profile specifies TRAP=ON, starting Xpediter automatically creates a trap
based on netname and terminal ID. If TRAP=OFF, the trap is created when you set
a breakpoint.

4. Type =1.6 in the COMMAND field and press Enter. The Trap Summary screen (1.6) is
displayed (Figure 3-30) showing the trap Xpediter automatically created based on
netname and terminal ID.
The breakpoints you set will only be taken when the task is running on netname
ACME0027 and terminal 0027. Abends for that netname and terminal will also be
trapped.
Testing an Assembler Program 3-19

Figure 3-30. Displaying a Trap on the Trap Summary Screen (1.6)

---------------------- XPEDITER/CICS - TRAP SUMMARY (1.6) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMACH CSECT: CWDEMACH COMPILED: 14 SEP 2006 - 11.35
MODE: ALL (IP TERM or ALL) ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert)
M (Move) S (Save)
NETNAME/ TERM/ TRAP
CMD USERID CLIENT IP SERVER IP PORT TRAN PROGRAM ABEND
IF ...................... TRAP CONDITION .......................
------------------------------------------------------------------------------
_ ******** ACME0027 0027 **** ******** YES
IF
_ ________ _______________ _______________ _____ ____ ________ ___
IF

5. To create an enhanced trap, type CONT+ACHREPCOMMAREA (26:4)=T’TEST’ in the


trap condition field on the second line of the trap entry following the word IF and
press Enter.

Figure 3-31. Enhanced Trap for Container ACHREPCOMMAREA

---------------------- XPEDITER/CICS - TRAP SUMMARY (1.6) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMACH CSECT: CWDEMACH COMPILED: 14 SEP 2006 - 11.35
MODE: ALL (IP TERM or ALL) ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert)
M (Move) S (Save)
NETNAME/ TERM/ TRAP
CMD USERID CLIENT IP SERVER IP PORT TRAN PROGRAM ABEND
IF ...................... TRAP CONDITION .......................
------------------------------------------------------------------------------
_ ******** ACME0027 0027 **** ******** YES
IF CONT+ACHREPCOMMAREA(26:4) = T'TEST'
_ ________ _______________ _______________ _____ ____ ________ ___
IF

This enhanced trap causes Xpediter to take breakpoints and trap abends only when
both of the following conditions are met:
– The task is running on netname ACME0027 and terminal 0027, and
– The program has access to container ACHREPCOMMAREA and it has a value of
TEST in the four characters starting at position 26.
The literal T'TEST' could also have been entered as 'TEST' without the preceding type
specification of T. Because this text type literal is not case-sensitive, you could also
have entered T'test', 'Test', or 'TeSt'.
6. The enhanced trap could also be modified to eliminate the netname and terminal ID
requirements. As shown in Figure 3-32, overtype ACME0027 in the NETNAME field
and 0027 in the TERM field with all asterisks (*), type CWDEMACH in the
PROGRAM field, and press Enter.
This type of enhanced trap is useful if there are hundreds of terminals executing a
single program, but you only want to stop in that program when the program’s
container contains the specified value.
3-20 Xpediter/CICS Assembler User Guide

Figure 3-32. Enhanced Trap for All Netnames and Terminal IDs Running CWDEMACH

---------------------- XPEDITER/CICS - TRAP SUMMARY (1.6) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMACH CSECT: CWDEMACH COMPILED: 14 SEP 2006 - 11.35
MODE: ALL (IP TERM or ALL) ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert)
M (Move) S (Save)
NETNAME/ TERM/ TRAP
CMD USERID CLIENT IP SERVER IP PORT TRAN PROGRAM ABEND
IF ...................... TRAP CONDITION .......................
------------------------------------------------------------------------------
_ ******** ******** **** **** CWDEMACH YES
IF CONT+ACHREPCOMMAREA(26:4) = T'TEST'
_ ________ _______________ _______________ _____ ____ ________ ___
IF

7. To see how this enhanced trap functions, first press Clear.


8. On the blank CICS screen, type XACH and press Enter. The Demonstration
Transaction screen is displayed as shown in Figure 3-33.

Figure 3-33. Demonstration Transaction Screen

XACH _____ - ENTER EMPLOYEE NUMBER C123



*** COMPUWARE CORPORATION ***
DEMONSTRATION TRANSACTION

ENTER DESIRED EMPLOYEE ABOVE:
00001 - CAUSES ASRA ABEND
00002 - CAUSES AEIM ABEND
00003 - CAUSES AEIP ABEND
00999 - ENDS NORMALLY

Notice that the trap was not taken by Xpediter/CICS. This is because the initial
invocation of the pseudo-conversational transaction XACH does not have a
container named ACHREPCOMMAREA with data for the trap criteria to match.
9. Type 00999 for the employee number and press Enter. Now Xpediter traps the
transaction as shown in Figure 3-34. This is because the second invocation of the
transaction was passed a container named ACHREPCOMMAREA with the characters
“TEST” in positions 26 through 29 (26:4).
Testing an Assembler Program 3-21

Figure 3-34. Taking an Enhanced Trap for Container ACHREPCOMMAREA

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMACH CSECT: CWDEMACH COMPILED: 14 SEP 2006 - 11.35
------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->
WRKHOUR PL3 ?????
**END**



------ ----------------------------------------------- Before CWDEMACH.599 ->
000597 00006A D20F D290 34C8 MVC STARTWS,=CL16'* START WS *
000598 000070 D20F DCB0 34D8 MVC ENDWS,=CL16'* END WS *'
=====> B 000076 F820 D2EA 35DE ZAP WRKHOUR,=P'0' INIT WRK
000600 * EXEC CICS HANDLE AID CLEAR(RETURN)
000601 DFHECALL =X'020680000805000000000000
------ ,RETURN)
000602 +*********************************************
000603 00007C + DS 0H
000604 00007C 4110 D068 + LA 1,DFHEIPL
000605 000080 41E0 3584 + LA 14,=X'020680000805000000000000
000606 000084 41F0 3518 + LA 15,=A(RETURN)
000607 000088 90EF 1000 + STM 14,15,0(1)
000608 00008C 9680 1004 + OI 4(1),X'80' LAST ARGUM
000609 000090 58F0 351C + L 15,=V(DFHEI1)

10. To confirm that the data in container ACHREPCOMMAREA satisfied your enhanced
trap criteria, transfer to the Browse Container Data screen by typing =2.C.3 in the
COMMAND field and pressing Enter. The current input channel and container
appear as the defaults and TEST is displayed starting in position 26 of the container
data in container ACHREPCOMMAREA as shown in Figure 3-35. This data is
displayed in this sample in HEX ON mode to show both character and hex data. If
you want to display another container’s data, you can simply enter the new
container name in the CONTAINER field and press Enter. To view a container on
another channel, you must also enter the new channel name.

Figure 3-35. Confirm that Container Data Satisfied Enhanced Trap Criteria

---------------- XPEDITER/CICS - BROWSE CONTAINER DATA (2.C.3) ------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMACH CSECT: CWDEMACH COMPILED: 14 SEP 2006 - 11.35

TASK: 00127 PROGRAM: CWDEMACH
CHANNEL: ACHCHANNEL CONTAINER: ACHREPCOMMAREA
DEC-OFFSET: 000000 ADD-OFFSET: 000000 CONTAINER-LENGTH: 0000000080
----+---10----+---20----+---30----+---40----+---50----+---60----+---70----+--->
Commarea: Text:TEST Char:Test Ascii:<(>? Hex: Test
C999898874E8AA7ECEE4C8897E8AA4CA888744664C8A74E8AA44444444444444444444444444444
36441951A03573A352303819A3523012399ACDEF0857A0352300000000000000000000000000000
----+---10----+---20----+---30----+---40----+---50----+---60----+---70----+--->

11. End your debugging session by typing XPND on a blank CICS screen and pressing
Enter.

Setting an Enhanced Trap Using MQ


See the Xpediter/CICS COBOL User’s Guide sections entitled “Using Enhanced Traps” and
“Using Enhanced Breakpoints” for information on WebSphere MQ (MQSeries) traps
and breakpoints.
3-22 Xpediter/CICS Assembler User Guide

Defining Labels
In this example, we want to execute the program until WRKHOUR is initialized. This
enables you to see how this field was set to $$$. The GO UNTIL command is used to
execute the program until the value of WRKHOUR changes. To use the GO UNTIL
command, you must define a label to identify where the WRKHOUR field is located.
Defining a label allows Xpediter/CICS to halt execution whenever data is moved into the
WRKHOUR area, whether directly or indirectly. WRKHOUR is defined as offset 25A from
register 13.

1. Type XPED 1.9 P=ASSEM and press Enter. The Define User Labels screen (1.9)
appears as shown in Figure 3-36.

Figure 3-36. Define User Labels Screen (1.9)

------------------- XPEDITER/CICS - DEFINE USER LABELS (1.9) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:

DEFAULT BASE LABELS: CSA DCT EIS FCT MOD OFL PGM TCA TCT
ADDR PADDR PLEN R0..R15 INITCOMM MQMD MQDATA

USER BASE ENTRY OR + OR - USE RESULTING
DEL LABEL LABEL PGM-NAME OFFSET CONTENT LENGTH VALUE
------------------------------------------------------------------------------
_ ________ ________ ________ _________ _ ________
_ ________ ________ ________ _________ _ ________
_ ________ ________ ________ _________ _ ________

2. Type MYLABEL in the USER LABEL field. (You can use any name in this field.)
3. Type R13 in the BASE LABEL field.
4. Type 25A in the + OR - OFFSET field.
5. Type 3 in the LENGTH field.
6. Press Enter to set the label.

A breakpoint must be set in the program to halt execution after the base register (R13 in
this case) is loaded.

7. Enter CWDEMASM in the MODULE field and press PF6 to go to the Source Listing
screen (2.L).
8. Type AFTER +6A in the COMMAND field and press Enter to set a breakpoint at offset
6A.
9. Press Clear to return to CICS and start the test.
10. Type XASM and press Enter. CWDEMASM is a pseudo-conversational program, so
execution stops at the after breakpoint on the first pass through the program as
shown in Figure 3-37.
Testing an Assembler Program 3-23

Figure 3-37. After Breakpoint on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ************ Next logical statement is 000449 *************
------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->
EIBCALEN H 'X 0000
**END**



------ ------------------------------------------------ After CWDEMASM.448 ->
000445 000064 58F0 33F0 + L 15,=V(DFHEI1)
000446 000068 05EF + BALR 14,15 INVOKE EXE
000447 +*********************************************
====>> A 00006A D501 B018 3466 CLC EIBCALEN,=X'0000' HAS A CO
000449 000070 4720 30F8 BH RECVMP1 YES, TAK
000450 000074 4100 D477 BUILDMP1 LA R0,PAYMAP1 MOVE
000451 000078 4810 D260 LH R1,PAYMP1AL SPACES
000452 00007C 41E0 D476 LA R14,SPACES1 TO
000453 000080 58F0 33F4 L R15,=X'40000000' MAP
000454 000084 0E0E MVCL R0,R14 ONE.
000455 000086 D20E D477 D2FC MVC PAYFLD1,MAPFLD1 MOVE
000456 00008C D204 D48B D30B MVC PAYFLD1A,MAPFLD1A HEADINGS
000457 000092 D21C D527 D310 MVC PAYMSG3,MAPMSG3 TO
000458 000098 D21C D577 D32D MVC PAYMSG4,MAPMSG4 MAP

11. Press PF12 to continue the execution. The Demonstration Transaction screen is
displayed.
12. Type 00001 and press Enter.
The program is intercepted.
13. Type GO UNTIL MYLABEL and press Enter. This command tells Xpediter/CICS to
execute the program until the contents of the area defined by MYLABEL changes. The
display is positioned at an MVC instruction as shown in Figure 3-38.
Notice that this MVC instruction does not directly reference WRKHOUR. WRKHOUR
is part of WORKAREA and the MVC WORKAREA, EMP001 moved the bad data from
EMP001 to this field.

Figure 3-38. Source Listing Screen (2.L) - GO UNTIL MYLABEL

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> GO UNTIL MYLABEL SCROLL ===> CSR
MODULE: CWDEMASM ****** "UNTIL" condition met, step execution halted *******
------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->
WORKAREA 0CL61 NMR. DAVID ABEND456 MAIN
EMP001 0CL61 NMR. DAVID ABEND456 MAIN
**END**


------ ------------------------------------------------ After CWDEMASM.595 ->
000592 00022A 05EF + BALR 14,15 INVOKE EXE
000593 +*********************************************
000594 00022C 47F0 323A B NORMAL BRANCH T
====>> 000230 D23C D220 D282 ASRAABND MVC WORKAREA,EMP001 MOVE BAD
000596 000236 47F0 3240 B PROCESS BRANCH T
000597 00023A D23C D220 D2BF NORMAL MVC WORKAREA,EMP999 MOVE GOO
000598 000240 D204 D267 D266 PROCESS MVC CURRPAY,ZEROS1 ZERO OUT
000599 000246 D206 D26D D26C MVC CURRTAXS,ZEROS2 ZERO OUT
000600 00024C D200 D26B D24B MVC CURRPAY+4(1),WRKRATE MOVE WRK
000601 * IF 00001 WAS ENTERED, AN ASRA WILL
000602 * OCCUR ON THE FOLLOWING INSTRUCTION....
000603 000252 FC42 D267 D25A MP CURRPAY,WRKHOUR MULTIPLY
000604 000258 D204 D26F D267 MVC CURRTAXS+2(5),CURRPAY MOVE CUR
000605 00025E FC61 D26D D24C MP CURRTAXS,WRKTAX MULTIPLY

At this point, you can do any one of the following:


3-24 Xpediter/CICS Assembler User Guide

– Transfer to the Memory Display screen, fix the data, and continue the test.
– Use the SKIP command to skip the statement.
– Resume execution at another point.
– Type =X and end the session.
Remember to end your debugging session as described in “Exiting Xpediter/CICS and
Ending a Debugging Session” on page 2-5.
4-1

Chapter 4.
Debugging Applications Without Source Code Chap 4

As discussed in “Preparing a Program for Execution” on page 2-1, the typical


Xpediter/CICS test begins by processing the application program with a Compuware
language processor. This process creates an online source listing that allows you to
interactively step through your source code as it executes. However, if this source listing
is not available, you can still test your programs with Xpediter/CICS using a form of
testing called sourceless debugging.

This chapter demonstrates two methods for using sourceless debugging when testing
your applications: PSEUDOSOURCE and Line Mode. You can still use Xpediter/CICS to
set breakpoints, intercept abends, step through instructions, modify data, and generally
test your program.

The PSEUDOSOURCE command allows you to map a program or CSECT to create an


Assembler pseudo-listing. This pseudo-listing displays the underlying instructions in
memory as if it was an Assembler program processed by the Compuware Assembler
Language Processor. While you still need some experience in debugging assembler
language, the capability to debug a program or CSECT as if you had the original source
provides you with a much richer set of commands.

Line Mode debugging, described on page 4-13, still allows you to use the product,
although you do not have as rich a set of commands as PSEUDOSOURCE allows. Because
you do not have a source listing available, you are restricted to using offsets and working
with a single assembler instruction. In Line Mode, you will probably require a hard copy
listing of the program to assist in debugging the program or CSECT. You also need to be
able to decipher Assembler instructions by looking at the hexadecimal display of storage
in the 2.2 or 9.2 screens.

To demonstrate sourceless debugging, this chapter discusses the following two major
categories of testing:

• Without setting breakpoints


• Setting breakpoints and stepping through the code

The following scenarios are based on the application transaction XASM. This is the
sample payroll transaction shipped with Xpediter/CICS that executes the Assembler
program CWDEMASM. Since sourceless debugging mandates that no source listing exists
for the program in question, you may wish to use a program of your own.

Note: The demonstrations in this chapter should be performed in Xpediter’s standard


operating mode — not one of the three restricted modes. For more information,
see the Xpediter/CICS Reference Manual.

When to Use Sourceless Debugging


Xpediter/CICS attempts to map your program to source whenever possible. It defaults to
sourceless mode only if no corresponding source can be found. This is most likely due to
one of the following situations:

• The program was not processed using a Compuware language processor.


• A version of the language processor no longer supported was used.
• The language processor step did not complete successfully.
4-2 Xpediter/CICS Assembler User Guide

• The source listing dataset is not defined (or incorrectly defined) to your CICS region.
• The load module timestamp does not match the Xpediter/CICS source timestamp
because:
– The program was linked into a library other than the one in use under CICS.
Check your CICS library concatenation.
– A new copy of the load module was not brought into storage.

Pressing the help PF key (default PF1) will display specific information on why no source
is available.

Preparing for Sourceless Debugging


By definition, sourceless debugging only takes place if source does not exist in the
Xpediter/CICS source listing dataset for a module. Program CWDEMASM has already
been processed for use in other chapters of this guide. As a result, to continue with this
section, you must first disable any Xpediter/CICS source listing for CWDEMASM. As an
alternative, you could follow the examples using your own program that has not been
processed with the Compuware language processor.

Type =2.6.1 in the COMMAND field and CWDEMASM in the MODULE field, then press
Enter to go to the List of CSECTs screen (2.6.1). Overtype CWDEMASM in the LISTING
column with XXDEMASM and press Enter to disable the source listing. Be sure to change
the name back to CWDEMASM when you have completed the procedures in this chapter,
or simply end your Xpediter session.

Using PSEUDOSOURCE
Sourceless Debugging without Breakpoints
1. On a blank screen, type XPED and press Enter. This activates Xpediter/CICS for your
terminal, turns on the abend trap option, and displays the Primary Menu as shown
in Figure 4-1.

Figure 4-1. Primary Menu (XPED/XPRT)

-------------------- XPEDITER/CICS 09.04.00 - PRIMARY MENU ----------------C123


COMMAND ===>
MODULE: CSECT:

0 SESSION PROFILE - Set default session attributes
1 SESSION CONTROL - Analyze summary of session events
2 DEBUGGING FACILITIES - Interactively debug application programs
5 FILE UTILITY - Access datasets, temp stg, trans data, DLI, DB2
7 ABEND-AID FOR CICS - Interface to Abend-AID for CICS

C CODE COVERAGE - Interface to Xpediter/Code Coverage
G XCHANGE/CICS - Interface to Xpediter/Xchange CICS Facilities
P CICSPLEX FACILITIES - Access CICSPlex Control Facilities
X EXIT - Exit Xpediter

To set breakpoints in your program or keep specific data fields,
enter your program name and use either the SOURCE command or PF key.

For Online Technical Support refer to: http://frontline.compuware.com


NOTICE: Press PF2/PF14 to display the Copyright/Trade Secret Notice
Debugging Applications Without Source Code 4-3

Xpediter/CICS is now turned ON and ready to intercept any abends associated with
your terminal and programs.
2. To turn the TRACE option on, type SET TRACE ON in the COMMAND field and press
Enter.
3. To enable the display of the OFFSET field in Assembler programs, type SET JUST OFF
in the COMMAND field and press Enter.
4. Type PSEUDOSOURCE CWDEMASM in the COMMAND field and press Enter. This
automatically transfers you to the Source Listing screen (2.L) and displays the
pseudo-listing created. This is shown in Figure 4-2.

Figure 4-2. Source Listing Screen with CWDEMASM Pseudo-Listing

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ********** PseudoSource listing has been created **********
------ --------------------------------------------------------------------->
000004 00000000 90EC D00C STM 14,12,X'00C'(13)
000005 00000004 183F LR 3,15
000006 00000006 4510 300E BAL 1,X'00E'(0,3)
000007 0000000A 0BA2 BSM 10,2
000008 0000000C 0000 DC XL2'0000'
000009 0000000E 58F0 33E8 L 15,X'3E8'(0,3)
000010 00000012 05EF BALR 14,15
000011 00000014 50D0 1004 ST 13,X'004'(0,1)
000012 00000018 18F1 LR 15,1
000013 0000001A BF1F D018 ICM 1,15,X'018'(13)
000014 0000001E 4780 3028 BZ X'028'(0,3)
000015 00000022 D207 F05C 1000 MVC X'05C'(8,15),X'000'(1)
000016 00000028 18DF LR 13,15
000017 0000002A 58B0 D05C L 11,X'05C'(0,13)
000018 0000002E 4100 D100 LA 0,X'100'(0,13)
000019 00000032 4110 0AA0 LA 1,X'AA0'(0,0)
000020 00000036 41E0 3540 LA 14,X'540'(0,3)
000021 0000003A 18F1 LR 15,1
000022 0000003C 0E0E MVCL 0,14
000023 0000003E D20F D200 33C0 MVC X'200'(16,13),X'3C0'(3)

5. Type SET KEEPS OFF and press Enter. When performing sourceless debugging with a
pseudo-listing, no variable names are generated, so keeps by variable name cannot be
set. The SET KEEPS OFF command closes the keep window portion of the source
listing screen while in stop/abend state and displays more source lines.
6. Press Clear to return to CICS to start your test.
7. On a blank CICS screen, type XASM or your transaction ID and press Enter. This
displays the Demonstration Transaction screen shown in Figure 4-3.

Figure 4-3. Demonstration Transaction Screen

XASM _____ - ENTER EMPLOYEE NUMBER C123



*** COMPUWARE CORPORATION ***
DEMONSTRATION TRANSACTION

ENTER DESIRED EMPLOYEE ABOVE:
00001 - CAUSES ASRA ABEND
00002 - AEIM ABEND
00003 - AEIP ABEND
00999 - ENDS NORMALLY

8. To cause an ASRA abend in CWDEMASM, type 00001 and press Enter.


When you used the PSEUDOSOURCE command for CWDEMASM, it created a
pseudo-listing that appears to Xpediter/CICS just like a program which had been
4-4 Xpediter/CICS Assembler User Guide

processed with the Assembler Language Processor. In this case, the Source Listing
screen will be displayed as shown in Figure 4-4. You can see that the resulting abend
was an ASRA, a Data Exception that occurred at statement 143 in the pseudo-listing.
You can see that the ASRA occurred on a multiply decimal (MP) instruction.

Figure 4-4. Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------ ----------------------------- ASRA (DATA EXCEPTION) at CWDEMASM.143 ->
000138 00000236 47F0 3240 B X'240'(0,3)
000139 0000023A D23C D220 D2BF MVC X'220'(61,13),X'2BF'(13)
000140 00000240 D204 D267 D266 MVC X'267'(5,13),X'266'(13)
000141 00000246 D206 D26D D26C MVC X'26D'(7,13),X'26C'(13)
000142 0000024C D200 D26B D24B MVC X'26B'(1,13),X'24B'(13)
=====> 00000252 FC42 D267 D25A MP X'267'(5,13),X'25A'(3,13)
000144 00000258 D204 D26F D267 MVC X'26F'(5,13),X'267'(13)
000145 0000025E FC61 D26D D24C MP X'26D'(7,13),X'24C'(2,13)
000146 00000264 FA44 D24E D267 AP X'24E'(5,13),X'267'(5,13)
000147 0000026A FA66 D253 D26D AP X'253'(7,13),X'26D'(7,13)
000148 00000270 4100 D7A5 LA 0,X'7A5'(0,13)
000149 00000274 4810 D264 LH 1,X'264'(0,13)
000150 00000278 41E0 D7A4 LA 14,X'7A4'(0,13)
000151 0000027C 58F0 33F4 L 15,X'3F4'(0,3)
000152 00000280 0E0E MVCL 0,14
000153 00000282 D21C D7A5 D3DC MVC X'7A5'(29,13),X'3DC'(13)
000154 00000288 D21C D7F5 D3F9 MVC X'7F5'(29,13),X'3F9'(13)
000155 0000028E D211 D895 D416 MVC X'895'(18,13),X'416'(13)
000156 00000294 D211 D8E5 D428 MVC X'8E5'(18,13),X'428'(13)
000157 0000029A D211 D935 D43A MVC X'935'(18,13),X'43A'(13)

Since an ASRA took place on an MP instruction, there is a good chance that one or
both of the multipliers contain invalid packed data. To test this theory, you can view
the data. But first, look at the instruction MP X’267’(5,13),X’25A’(3,13). Since an MP
instruction utilizes an IBM SS format, you can determine the first operand is 5 bytes
long and is located X’267’ off register 13. The second operand is 3 bytes in length,
located X’25A’ off register 13.

Modifying Storage
1. Type =2.2 in the COMMAND field and press Enter, or press PF14, to transfer to the
Memory Display screen (2.2) as shown in Figure 4-5.
Debugging Applications Without Source Code 4-5

Figure 4-5. Viewing Program Storage on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
TABLE/AREA: PGM TABLE ENTRY ID: ________
ADDRESS: 38CCD028 HEX OFFSET: _______________________________
USE CONTENTS: _ ADD OFFSET: _____ ERDSA

CCSID TYPE: EBCDIC
00000000 000 90ECD00C 183F4510 300E0BA2 000058F0 * ..}........s...0 * 38CCD028
00000010 010 33E805EF 50D01004 18F1BF1F D0184780 * .Y..&}...1..}... * 38CCD038
00000020 020 3028D207 F05C1000 18DF58B0 D05C4100 * ..K.0*.....^}*.. * 38CCD048
00000030 030 D1004110 0AA041E0 354018F1 0E0ED20F * J......\. .1..K. * 38CCD058
00000040 040 D20033C0 D20FDB80 33D0F820 D25A3482 * K..{K....}8.K!.b * 38CCD068
00000050 050 4110D068 41E03450 41F033EC 90EF1000 * ..}..\.&.0...... * 38CCD078
00000060 060 96801004 58F033F0 05EFD501 B0183466 * o....0.0..N.^... * 38CCD088
00000070 070 472030F8 4100D477 4810D260 41E0D476 * ...8..M...K-.\M. * 38CCD098
00000080 080 58F033F4 0E0ED20E D477D2FC D204D48B * .0.4..K.M.K.K.M. * 38CCD0A8
00000090 090 D30BD21C D527D310 D21CD577 D32DD21C * L.K.N.L.K.N.L.K. * 38CCD0B8
000000A0 0A0 D617D34A D21CD667 D367D21C D6B7D384 * O.L¢K.O.L.K.O.Ld * 38CCD0C8
000000B0 0B0 D21CD707 D3A1D21C D757D3BE D204D486 * K.P.L~K.P.L.K.Mf * 38CCD0D8
000000C0 0C0 3483D21B D49033F8 4110D068 41E03488 * .cK.M..8..}..\.h * 38CCD0E8
000000D0 0D0 1BFF1B00 90E01000 41E0D477 41F0D260 * .....\...\M..0K- * 38CCD0F8
000000E0 0E0 90EF100C 96801010 58F033F0 05EFD204 * ....o....0.0..K. * 38CCD108
000000F0 0F0 D27D3483 47F03354 4110D068 41E03468 * K'.c.0....}..\.. * 38CCD118

The Memory Display screen (2.2) shows a hexadecimal dump of your test program.
Any instruction or data in your program is available from here. Simply type the
displacement you wish to see in the ADD OFFSET field. To get this information, look
at a paper listing of your assembly or by viewing the pseudo-listing. If you know the
fields you want to see, you don’t need a paper listing.
2. To display the contents of your first multiplier, you must tell Xpediter/CICS where to
look:
– Overtype PGM in the TABLE/AREA field with R13, and
– Type +267 in the HEX OFFSET field.
When you press Enter, the display is positioned at the first data item as shown in
Figure 4-6.

Figure 4-6. Viewing Data Fields on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
TABLE/AREA: R13 TABLE ENTRY ID: ________
ADDRESS: 00102308 HEX OFFSET: +00000267______________________
USE CONTENTS: _ ADD OFFSET: _____ UDSA

CCSID TYPE: EBCDIC
00000267 000 00000000 9C000000 00000000 00F0F0F0 * .............000 * 0010256F
00000277 010 00000811 40C6F0F0 F0F0F1D5 D4D94B40 * .... F00001NMR. * 0010257F
00000287 020 C4C1E5C9 C440C1C2 C5D5C4F4 F5F640D4 * DAVID ABEND456 M * 0010258F
00000297 030 C1C9D540 E2E340C8 D6D4C5E3 D6E6D5D4 * AIN ST HOMETOWNM * 0010259F
000002A7 040 C9F4F8F0 F1F09C02 0C000015 000C0000 * I48010.......... * 001025AF
000002B7 050 00000300 0C5B5B5B C9D4D94B 40D1D6C8 * .....$$$IMR. JOH * 001025BF
000002C7 060 D540C4D6 C5404040 F8F9F740 E3E4D3C9 * N DOE 897 TULI * 001025CF
000002D7 070 D7404040 C3C9E3E8 E3D6E6D5 D4C9F4F8 * P CITYTOWNMI48 * 001025DF
000002E7 080 F0F1F19C 020C0000 15000C00 00000003 * 011............. * 001025EF
000002F7 090 000C0004 0C114040 1DF0E7C1 E2D41140 * ...... .0XASM. * 001025FF
00000307 0A0 C51DD113 11404B1D F05C5C5C 40C3D6D4 * E.J.. ..0*** COM * 0010260F
00000317 0B0 D7E4E6C1 D9C540C3 D6D9D7D6 D9C1E3C9 * PUWARE CORPORATI * 0010261F
00000327 0C0 D6D5405C 5C5C4040 C4C5D4D6 D5E2E3D9 * ON *** DEMONSTR * 0010262F
00000337 0D0 C1E3C9D6 D540E3D9 C1D5E2C1 C3E3C9D6 * ATION TRANSACTIO * 0010263F
00000347 0E0 D54040C5 D5E3C5D9 40C4C5E2 C9D9C5C4 * N ENTER DESIRED * 0010264F
00000357 0F0 40C5D4D7 D3D6E8C5 C540C1C2 D6E5C57A * EMPLOYEE ABOVE: * 0010265F
4-6 Xpediter/CICS Assembler User Guide

Note that the displayed data area contains valid packed information. Since the five-
byte field contains 000000009C, the value is a packed 9.
3. Display the displacement of the second data item by typing +25A over the current
offset in the HEX OFFSET field. When you press Enter, the screen is positioned at the
second data item as shown in Figure 4-7.

Figure 4-7. Viewing Data Fields on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
TABLE/AREA: R13 TABLE ENTRY ID: ________
ADDRESS: 00102308 HEX OFFSET: +0000025A______________________
USE CONTENTS: _ ADD OFFSET: _____ UDSA

CCSID TYPE: EBCDIC
0000025A 000 5B5B5B00 0050032E 03320370 00000000 * $$$..&.......... * 00102562
0000026A 010 009C0000 00000000 0000F0F0 F0000008 * ..........000... * 00102572
0000027A 020 1140C6F0 F0F0F0F1 D5D4D94B 40C4C1E5 * . F00001NMR. DAV * 00102582
0000028A 030 C9C440C1 C2C5D5C4 F4F5F640 D4C1C9D5 * ID ABEND456 MAIN * 00102592
0000029A 040 40E2E340 C8D6D4C5 E3D6E6D5 D4C9F4F8 * ST HOMETOWNMI48 * 001025A2
000002AA 050 F0F1F09C 020C0000 15000C00 00000003 * 010............. * 001025B2
000002BA 060 000C5B5B 5BC9D4D9 4B40D1D6 C8D540C4 * ..$$$IMR. JOHN D * 001025C2
000002CA 070 D6C54040 40F8F9F7 40E3E4D3 C9D74040 * OE 897 TULIP * 001025D2
000002DA 080 40C3C9E3 E8E3D6E6 D5D4C9F4 F8F0F1F1 * CITYTOWNMI48011 * 001025E2
000002EA 090 9C020C00 0015000C 00000000 03000C00 * ................ * 001025F2
000002FA 0A0 040C1140 401DF0E7 C1E2D411 40C51DD1 * ... .0XASM. E.J * 00102602
0000030A 0B0 1311404B 1DF05C5C 5C40C3D6 D4D7E4E6 * .. ..0*** COMPUW * 00102612
0000031A 0C0 C1D9C540 C3D6D9D7 D6D9C1E3 C9D6D540 * ARE CORPORATION * 00102622
0000032A 0D0 5C5C5C40 40C4C5D4 D6D5E2E3 D9C1E3C9 * *** DEMONSTRATI * 00102632
0000033A 0E0 D6D540E3 D9C1D5E2 C1C3E3C9 D6D54040 * ON TRANSACTION * 00102642
0000034A 0F0 C5D5E3C5 D940C4C5 E2C9D9C5 C440C5D4 * ENTER DESIRED EM * 00102652

This time, the displayed field contains bad data. The three-byte packed field contains
5B5B5B, otherwise known as $$$. This error caused the ASRA.
4. Position the cursor on the bad data 5B5B5B area.
5. Replace the bad data by typing a valid packed number, such as 00045C, over the
data.
6. Press Enter to update the change. The data will contain a valid packed 45 as shown is
Figure 4-8.

Figure 4-8. Modifying Data on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
TABLE/AREA: R13 TABLE ENTRY ID: ________
ADDRESS: 00102308 HEX OFFSET: +0000025A______________________
USE CONTENTS: _ ADD OFFSET: _____ UDSA

CCSID TYPE: EBCDIC
0000025A 000 00045C00 0050032E 03320370 00000000 * ..*..&.......... * 00102562
0000026A 010 009C0000 00000000 0000F0F0 F0000008 * ..........000... * 00102572
0000027A 020 1140C6F0 F0F0F0F1 D5D4D94B 40C4C1E5 * . F00001NMR. DAV * 00102582
0000028A 030 C9C440C1 C2C5D5C4 F4F5F640 D4C1C9D5 * ID ABEND456 MAIN * 00102592
0000029A 040 40E2E340 C8D6D4C5 E3D6E6D5 D4C9F4F8 * ST HOMETOWNMI48 * 001025A2
000002AA 050 F0F1F09C 020C0000 15000C00 00000003 * 010............. * 001025B2
000002BA 060 000C5B5B 5BC9D4D9 4B40D1D6 C8D540C4 * ..$$$IMR. JOHN D * 001025C2
000002CA 070 D6C54040 40F8F9F7 40E3E4D3 C9D74040 * OE 897 TULIP * 001025D2
000002DA 080 40C3C9E3 E8E3D6E6 D5D4C9F4 F8F0F1F1 * CITYTOWNMI48011 * 001025E2
000002EA 090 9C020C00 0015000C 00000000 03000C00 * ................ * 001025F2
000002FA 0A0 040C1140 401DF0E7 C1E2D411 40C51DD1 * ... .0XASM. E.J * 00102602
0000030A 0B0 1311404B 1DF05C5C 5C40C3D6 D4D7E4E6 * .. ..0*** COMPUW * 00102612
0000031A 0C0 C1D9C540 C3D6D9D7 D6D9C1E3 C9D6D540 * ARE CORPORATION * 00102622
0000032A 0D0 5C5C5C40 40C4C5D4 D6D5E2E3 D9C1E3C9 * *** DEMONSTRATI * 00102632
0000033A 0E0 D6D540E3 D9C1D5E2 C1C3E3C9 D6D54040 * ON TRANSACTION * 00102642
0000034A 0F0 C5D5E3C5 D940C4C5 E2C9D9C5 C440C5D4 * ENTER DESIRED EM * 00102652
Debugging Applications Without Source Code 4-7

Now that you have corrected the data causing the error, you can continue with the
test.
7. Press PF6, or type =2.L and press Enter, to return to the Source Listing screen.
8. To continue your test, re-execute the last instruction by pressing PF9 or typing GO 1
in the COMMAND field and pressing Enter. This time, the transaction should not
abend.
With valid data, the instruction did not abend with an ASRA. The session pauses at
the next hexadecimal offset, which Xpediter/CICS shows to be a move character
(MVC) instruction as shown in Figure 4-9.

Figure 4-9. Source Listing Screen (2.L) Showing the GO 1 Command

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ****** ASM-INST AT OFFSET 0252 EXECUTED STEP=00001 *******
------ ----------------------------------------------- Before CWDEMASM.144 ->
000138 00000236 47F0 3240 B X'240'(0,3)
000139 0000023A D23C D220 D2BF MVC X'220'(61,13),X'2BF'(13)
000140 00000240 D204 D267 D266 MVC X'267'(5,13),X'266'(13)
000141 00000246 D206 D26D D26C MVC X'26D'(7,13),X'26C'(13)
000142 0000024C D200 D26B D24B MVC X'26B'(1,13),X'24B'(13)
000143 00000252 FC42 D267 D25A MP X'267'(5,13),X'25A'(3,13)
=====> 00000258 D204 D26F D267 MVC X'26F'(5,13),X'267'(13)
000145 0000025E FC61 D26D D24C MP X'26D'(7,13),X'24C'(2,13)
000146 00000264 FA44 D24E D267 AP X'24E'(5,13),X'267'(5,13)
000147 0000026A FA66 D253 D26D AP X'253'(7,13),X'26D'(7,13)
000148 00000270 4100 D7A5 LA 0,X'7A5'(0,13)
000149 00000274 4810 D264 LH 1,X'264'(0,13)
000150 00000278 41E0 D7A4 LA 14,X'7A4'(0,13)
000151 0000027C 58F0 33F4 L 15,X'3F4'(0,3)
000152 00000280 0E0E MVCL 0,14
000153 00000282 D21C D7A5 D3DC MVC X'7A5'(29,13

9. To continue the test, press PF12 or type GO in the COMMAND field and press Enter.
The program finishes without further abends, concluding our first exercise in
sourceless debugging (Figure 4-10).

Figure 4-10. Transaction Complete on the Demonstration Transaction Screen

*** COMPUWARE CORPORATION *** C123


DEMONSTRATION TRANSACTION

EMPLOYEE NUMBER: 00001
EMPLOYEE NAME: MR. DAVID ABEND
HOURS WORKED: 00045
HOURLY RATE: 9.00
GROSS PAY: 0000405.00

*** TRANSACTION COMPLETE ***

Sourceless Debugging with Breakpoints


Unlike most examples in this guide, this section does not follow a scenario tied to a
particular program and is not designed to correct any specific problem. Instead, it
demonstrates how you can use sourceless debugging in your environment. With that in
mind, you can either use a program of your own, or continue to use the demonstration
program CWDEMASM.

In the previous example, Xpediter/CICS trapped the program when it encountered an


abend, allowing you to fix the problem. This example demonstrates how to set
breakpoints to stop the program to gain access to code and data.
4-8 Xpediter/CICS Assembler User Guide

With Xpediter/CICS, you can set breakpoints at any instruction in any program,
regardless of whether you have source code.

1. From a cleared screen, type XPED CWDEMASM or XPED followed by your program
name. Press Enter.
Since you had previously used the PSEUDOSOURCE command in your debugging session,
the Source Listing screen (2.L) (Figure 4-11) is displayed. The program is not running,
but you can still set breakpoints.

Figure 4-11. Setting Breakpoints on the Memory Display Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------ ------------------------------------------------- Before CWDEMASM.4 ->
000001 CWDEMASM TITLE 'XPEDITER/CICS PSEUDO ASSEMB
000002 00000000 CWDEMASM CSECT
000003 00000000 MAIN DS 0H
=====> B 00000000 90EC D00C STM 14,12,X'00C'(13)
000005 00000004 183F LR 3,15
000006 00000006 4510 300E BAL 1,X'00E'(0,3)
000007 0000000A 0BA2 BSM 10,2
000008 0000000C 0000 DC XL2'0000'
000009 0000000E 58F0 33E8 L 15,X'3E8'(0,3)
000010 00000012 05EF BALR 14,15
000011 00000014 50D0 1004 ST 13,X'004'(0,1)
000012 00000018 18F1 LR 15,1
000013 0000001A BF1F D018 ICM 1,15,X'018'(13)
000014 0000001E 4780 3028 BZ X'028'(0,3)
000015 00000022 D207 F05C 1000 MVC X'05C'(8,15),X'000'(1)
000016 00000028 18DF LR 13,15
000017 0000002A 58B0 D05C L 11,X'05C'(0,13)
000018 0000002E 4100 D100 LA 0,X'100'(0,13)
000019 00000032 4110 0AA0 LA 1,X'AA0'(0,0)
000020 00000036 41E0 3540 LA 14,X'540'(0,3)

2. Position the cursor at the COMMAND field, type BEFORE 0, and press Enter. This
sets a breakpoint at the first instruction of the program. You can also set other
breakpoints from here, but one will be sufficient.
3. Press Clear to return to CICS.
4. Enter XASM or your own transaction ID to execute the test.
As in the last test, Xpediter/CICS displays the Source Listing Screen (2.L) (Figure 4-
12). This time, the program is stopped due to your breakpoint. The first instruction
in this program, at offset 000000, is a store multiple (STM). Your program may begin
with a different command, but it should still be paused at the beginning.
Debugging Applications Without Source Code 4-9

Figure 4-12. First Breakpoint on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------ ------------------------------------------------- Before CWDEMASM.4 ->
000001 CWDEMASM TITLE 'XPEDITER/CICS PSEUDO ASSEMB
000002 00000000 CWDEMASM CSECT
000003 00000000 MAIN DS 0H
=====> B 00000000 90EC D00C STM 14,12,X'00C'(13)
000005 00000004 183F LR 3,15
000006 00000006 4510 300E BAL 1,X'00E'(0,3)
000007 0000000A 0BA2 BSM 10,2
000008 0000000C 0000 DC XL2'0000'
000009 0000000E 58F0 33E8 L 15,X'3E8'(0,3)
000010 00000012 05EF BALR 14,15
000011 00000014 50D0 1004 ST 13,X'004'(0,1)
000012 00000018 18F1 LR 15,1
000013 0000001A BF1F D018 ICM 1,15,X'018'(13)
000014 0000001E 4780 3028 BZ X'028'(0,3)
000015 00000022 D207 F05C 1000 MVC X'05C'(8,15),X'000'(1)
000016 00000028 18DF LR 13,15
000017 0000002A 58B0 D05C L 11,X'05C'(0,13)
000018 0000002E 4100 D100 LA 0,X'100'(0,13)
000019 00000032 4110 0AA0 LA 1,X'AA0'(0,0)
000020 00000036 41E0 3540 LA 14,X'540'(0,3)

While paused, you can set additional breakpoints.


5. If using CWDEMASM, type BEFORE +6A, or check a paper listing to find a valid,
executable offset/statement to set a breakpoint in your own application. Press Enter.
6. Once the breakpoint is set, press PF12, or type GO in the COMMAND field and press
Enter, to return control to the program. The program will execute until it hits your
breakpoint as shown in Figure 4-15 on page 4-11.

Note: While setting breakpoints by offset is commonly used in Line Mode sourceless
debugging, you could have just as easily scrolled to the instruction in the
pseudo-listing and used a B line command instead.

Slow-Motion Execution through Code


While the program is paused at the new breakpoint, you can put the program in slow-
motion execution mode to watch as each instruction processes.

1. Type GO 10 1 in the COMMAND field and press Enter to execute the next ten
instructions. Since you coded a one second delay, each instruction briefly pauses on
the screen.
As shown in Figure 4-13, the CWDEMASM program finally comes to a stop at line 43
(offset +98) after executing the ten instructions.
4-10 Xpediter/CICS Assembler User Guide

Figure 4-13. Line 43 (Offset +98) on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ****** ASM-INST AT OFFSET 0092 EXECUTED STEP=00010 *******
------ ------------------------------------------------ Before CWDEMASM.43 ->
000028 00000058 41F0 33EC LA 15,X'3EC'(0,3)
000029 0000005C 90EF 1000 STM 14,15,X'000'(1)
000030 00000060 9680 1004 OI X'004'(1),X'80'
000031 00000064 58F0 33F0 L 15,X'3F0'(0,3)
000032 00000068 05EF BALR 14,15
000033 B 0000006A D501 B018 3466 CLC X'018'(2,11),X'466'(3)
000034 00000070 4720 30F8 BH X'0F8'(0,3)
000035 00000074 4100 D477 LA 0,X'477'(0,13)
000036 00000078 4810 D260 LH 1,X'260'(0,13)
000037 0000007C 41E0 D476 LA 14,X'476'(0,13)
000038 00000080 58F0 33F4 L 15,X'3F4'(0,3)
000039 00000084 0E0E MVCL 0,14
000040 00000086 D20E D477 D2FC MVC X'477'(15,13),X'2FC'(13)
000041 0000008C D204 D48B D30B MVC X'48B'(5,13),X'30B'(13)
000042 00000092 D21C D527 D310 MVC X'527'(29,13),X'310'(13)
=====> 00000098 D21C D577 D32D MVC X'577'(29,13),X'32D'(13)
000044 0000009E D21C D617 D34A MVC X'617'(29,13),X'34A'(13)
000045 000000A4 D21C D667 D367 MVC X'667'(29,13),X'367'(13)
000046 000000AA D21C D6B7 D384 MVC X'6B7'(29,13),X'384'(13)
000047 000000B0 D21C D707 D3A1 MVC X'707'(29,13),X'3A1'(13)

Viewing Traced Statements


During your test, Xpediter’s trace facility has been active.

1. To view what has been traced, press PF17, or enter =2.4 in the COMMAND field and
press Enter. If multiple facilities have been traced, the Program Trace Directory screen
appears. Select your terminal on that screen.
Since a pseudo-listing appears like a real source listing, the lines executed are
displayed on the Program Trace screen (2.4) (Figure 4-14). With the pseudo-listing
lines shown, you can see exactly what was executed. You can scroll through the
Program Trace screen (2.4).

Figure 4-14. Program Trace Screen (2.4)

--------------------- XPEDITER/CICS - PROGRAM TRACE (2.4) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
TERM: 1996 ------------------------------------------------ Before CWDEMASM.43
=======> TASK(005411) MODULE:CWDEMASM CSECT:CWDEMASM LANGUAGE:ASSEMBLE
000025 0000004A F820 D25A 3482 ZAP X'25A'(3,13),X'482'(1,3)
000026 00000050 4110 D068 LA 1,X'068'(0,13)
000027 00000054 41E0 3450 LA 14,X'450'(0,3)
000028 00000058 41F0 33EC LA 15,X'3EC'(0,3)
000029 0000005C 90EF 1000 STM 14,15,X'000'(1)
000030 00000060 9680 1004 OI X'004'(1),X'80'
000031 00000064 58F0 33F0 L 15,X'3F0'(0,3)
000032 00000068 05EF BALR 14,15
000033 0000006A D501 B018 3466 CLC X'018'(2,11),X'466'(3)
000034 00000070 4720 30F8 BH X'0F8'(0,3)
000035 00000074 4100 D477 LA 0,X'477'(0,13)
000036 00000078 4810 D260 LH 1,X'260'(0,13)
000037 0000007C 41E0 D476 LA 14,X'476'(0,13)
000038 00000080 58F0 33F4 L 15,X'3F4'(0,3)
000039 00000084 0E0E MVCL 0,14
000040 00000086 D20E D477 D2FC MVC X'477'(15,13),X'2FC'(13)
000041 0000008C D204 D48B D30B MVC X'48B'(5,13),X'30B'(13)
000042 00000092 D21C D527 D310 MVC X'527'(29,13),X'310'(13)
******************************** BOTTOM OF DATA *******************************

2. Press PF6, or type =2.L in the COMMAND field and press Enter, to return to the
Source Listing screen (2.L).
Debugging Applications Without Source Code 4-11

Figure 4-15. Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------ ------------------------------------------------ Before CWDEMASM.33 ->
000028 00000058 41F0 33EC LA 15,X'3EC'(0,3)
000029 0000005C 90EF 1000 STM 14,15,X'000'(1)
000030 00000060 9680 1004 OI X'004'(1),X'80'
000031 00000064 58F0 33F0 L 15,X'3F0'(0,3)
000032 00000068 05EF BALR 14,15
=====> B 0000006A D501 B018 3466 CLC X'018'(2,11),X'466'(3)
000034 00000070 4720 30F8 BH X'0F8'(0,3)
000035 00000074 4100 D477 LA 0,X'477'(0,13)
000036 00000078 4810 D260 LH 1,X'260'(0,13)
000037 0000007C 41E0 D476 LA 14,X'476'(0,13)
000038 00000080 58F0 33F4 L 15,X'3F4'(0,3)
000039 00000084 0E0E MVCL 0,14
000040 00000086 D20E D477 D2FC MVC X'477'(15,13),X'2FC'(13)
000041 0000008C D204 D48B D30B MVC X'48B'(5,13),X'30B'(13)
000042 00000092 D21C D527 D310 MVC X'527'(29,13),X'310'(13)
000043 00000098 D21C D577 D32D MVC X'577'(29,13),X'32D'(13)
000044 0000009E D21C D617 D34A MVC X'617'(29,13),X'34A'(13)
000045 000000A4 D21C D667 D367 MVC X'667'(29,13),X'367'(13)
000046 000000AA D21C D6B7 D384 MVC X'6B7'(29,13),X'384'(13)
000047 000000B0 D21C D707 D3A1 MVC X'707'(29,13),X'3A1'(13)

Modifying the Logic Path


You can change a sourceless program’s logic path using the offset option of the GOTO
command to branch to another location. This is an excellent method to test code that
has not been tested or to which other programs are rarely branched.

1. Type GOTO +92, or another offset, in the COMMAND field to change your execution
pointer. Press Enter.
As shown in Figure 4-16, the program branched to the new location. If you were to
begin single-step execution with the GO command, that instruction would execute.

Note: Since you have a pseudo-listing, you could have alternately typed GOTO 42
(goto line 42).

Figure 4-16. New Location on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ******************** GOTO OFFSET X'92 ******************
------ ------------------------------------------------ Before CWDEMASM.42
000028 00000058 41F0 33EC LA 15,X'3EC'(0,3)
000029 0000005C 90EF 1000 STM 14,15,X'000'(1)
000030 00000060 9680 1004 OI X'004'(1),X'80'
000031 00000064 58F0 33F0 L 15,X'3F0'(0,3)
000032 00000068 05EF BALR 14,15
000033 B 0000006A D501 B018 3466 CLC X'018'(2,11),X'466'(3)
000034 00000070 4720 30F8 BH X'0F8'(0,3)
000035 00000074 4100 D477 LA 0,X'477'(0,13)
000036 00000078 4810 D260 LH 1,X'260'(0,13)
000037 0000007C 41E0 D476 LA 14,X'476'(0,13)
000038 00000080 58F0 33F4 L 15,X'3F4'(0,3)
000039 00000084 0E0E MVCL 0,14
000040 00000086 D20E D477 D2FC MVC X'477'(15,13),X'2FC'(13)
000041 0000008C D204 D48B D30B MVC X'48B'(5,13),X'30B'(13)
=====> 00000092 D21C D527 D310 MVC X'527'(29,13),X'310'(13)
000043 00000098 D21C D577 D32D MVC X'577'(29,13),X'32D'(13)
000044 0000009E D21C D617 D34A MVC X'617'(29,13),X'34A'(13)
000045 000000A4 D21C D667 D367 MVC X'667'(29,13),X'367'(13)
000046 000000AA D21C D6B7 D384 MVC X'6B7'(29,13),X'384'(13)
000047 000000B0 D21C D707 D3A1 MVC X'707'(29,13),X'3A1'(13)
4-12 Xpediter/CICS Assembler User Guide

Single-Stepping through Code


1. Press PF9, or type GO 1 in the COMMAND field and press Enter, to execute the
current instruction.
Figure 4-17 shows the instruction was executed. The offset was incremented, and a
new instruction is shown.

Figure 4-17. Instruction Executed on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ****** ASM-INST AT OFFSET 0092 EXECUTED STEP=00001 *******
------ ------------------------------------------------ Before CWDEMASM.43 ->
000028 00000058 41F0 33EC LA 15,X'3EC'(0,3)
000029 0000005C 90EF 1000 STM 14,15,X'000'(1)
000030 00000060 9680 1004 OI X'004'(1),X'80'
000031 00000064 58F0 33F0 L 15,X'3F0'(0,3)
000032 00000068 05EF BALR 14,15
000033 B 0000006A D501 B018 3466 CLC X'018'(2,11),X'466'(3)
000034 00000070 4720 30F8 BH X'0F8'(0,3)
000035 00000074 4100 D477 LA 0,X'477'(0,13)
000036 00000078 4810 D260 LH 1,X'260'(0,13)
000037 0000007C 41E0 D476 LA 14,X'476'(0,13)
000038 00000080 58F0 33F4 L 15,X'3F4'(0,3)
000039 00000084 0E0E MVCL 0,14
000040 00000086 D20E D477 D2FC MVC X'477'(15,13),X'2FC'(13)
000041 0000008C D204 D48B D30B MVC X'48B'(5,13),X'30B'(13)
000042 00000092 D21C D527 D310 MVC X'527'(29,13),X'310'(13)
=====> 00000098 D21C D577 D32D MVC X'577'(29,13),X'32D'(13)
000044 0000009E D21C D617 D34A MVC X'617'(29,13),X'34A'(13)
000045 000000A4 D21C D667 D367 MVC X'667'(29,13),X'367'(13)
000046 000000AA D21C D6B7 D384 MVC X'6B7'(29,13),X'384'(13)
000047 000000B0 D21C D707 D3A1 MVC X'707'(29,13),X'3A1'(13)

Modifying Registers
Sometimes in testing, you need a different value or address in a register to achieve the
desired results. Xpediter/CICS gives you this capability.

1. Type SET FOOT REGS in the Command Line and press Enter.
This will turn on the Register Footing. The registers you see on your screen are
dynamic; as your program manipulates them, you can see them change. You also
have the option of changing them yourself.
2. To change the value of register 0, overtype the current value with 001C0000.
3. To change R5 and R14 to high-values and low-values, overtype the contents of the
registers with FFFFFFFF and 00000000 respectively. Press Enter.
The resulting screen (Figure 4-18) shows the changed values in registers R0, R5, and
R14.

Remember to end your session as described in “Exiting Xpediter/CICS and Ending a


Debugging Session” on page 2-5. Also, if you renamed CWDEMASM at the start of this
chapter, remember to first undo this change on the List of CSECTs screen (2.6.1).

This concludes sourceless debugging using the PSEUDOSOURCE command to create a


pseudo-listing. Remember, by using the PSEUDOSOURCE command to create a pseudo-
listing, it is the same as any other testing and debugging session in Xpediter/CICS.
Debugging Applications Without Source Code 4-13

Figure 4-18. Modifying Registers on the Source Listing Screen (2.L0 with Foot Regs.

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------ ------------------------------------------------ Before CWDEMASM.43 ->
000028 00000058 41F0 33EC LA 15,X'3EC'(0,3)
000029 0000005C 90EF 1000 STM 14,15,X'000'(1)
000030 00000060 9680 1004 OI X'004'(1),X'80'
000031 00000064 58F0 33F0 L 15,X'3F0'(0,3)
000032 00000068 05EF BALR 14,15
000033 B 0000006A D501 B018 3466 CLC X'018'(2,11),X'466'(3)
000034 00000070 4720 30F8 BH X'0F8'(0,3)
000035 00000074 4100 D477 LA 0,X'477'(0,13)
000036 00000078 4810 D260 LH 1,X'260'(0,13)
000037 0000007C 41E0 D476 LA 14,X'476'(0,13)
000038 00000080 58F0 33F4 L 15,X'3F4'(0,3)
000039 00000084 0E0E MVCL 0,14
000040 00000086 D20E D477 D2FC MVC X'477'(15,13),X'2FC'(13)
000041 0000008C D204 D48B D30B MVC X'48B'(5,13),X'30B'(13)
000042 00000092 D21C D527 D310 MVC X'527'(29,13),X'310'(13)
=====> 00000098 D21C D577 D32D MVC X'577'(29,13),X'32D'(13)
--------------------- C U R R E N T R E G I S T E R S ---------------------
R0-R7 001C0000 00000000 380A5828 396F2328 380A4F60 FFFFFFFF 3784CD0E 3784DD0D
R8-R15 3784ED0C 3784FD0B 37850D0A 002400D0 008A8000 0024B608 00000000 40000000
INSTRUCTION: B96F23C0 00098 D21C D577 D32D MVC X'577'(29,13),X'32D'(13)

Line Mode
Sourceless Debugging without Breakpoints
1. On a blank screen, type XPED and press Enter. This activates Xpediter/CICS for your
terminal, turns on the abend trap option, and displays the Primary Menu as shown
in Figure 4-19.

Figure 4-19. Primary Menu (XPED/XPRT)

-------------------- XPEDITER/CICS 09.04.00 - PRIMARY MENU ----------------C123


COMMAND ===>
MODULE: CSECT:

0 SESSION PROFILE - Set default session attributes
1 SESSION CONTROL - Analyze summary of session events
2 DEBUGGING FACILITIES - Interactively debug application programs
5 FILE UTILITY - Access datasets, temp stg, trans data, DLI, DB2
7 ABEND-AID FOR CICS - Interface to Abend-AID for CICS

C CODE COVERAGE - Interface to Xpediter/Code Coverage
G XCHANGE/CICS - Interface to Xpediter/Xchange CICS Facilities
P CICSPLEX FACILITIES - Access CICSPlex Control Facilities
X EXIT - Exit Xpediter

To set breakpoints in your program or keep specific data fields,
enter your program name and use either the SOURCE command or PF key.

For Online Technical Support refer to: http://frontline.compuware.com


NOTICE: Press PF2/PF14 to display the Copyright/Trade Secret Notice

Xpediter/CICS is now turned ON and ready to intercept any abends associated with
your terminal and programs.
2. To turn the TRACE option on, type SET TRACE ON in the COMMAND field and press
Enter.
4-14 Xpediter/CICS Assembler User Guide

3. To continue with this section, you must first disable any Xpediter/CICS source listing
for CWDEMASM. Type =2.6.1 in the COMMAND field and CWDEMASM in the
MODULE field, then press Enter to go to the List of CSECTS screen (2.6.1). Overtype
CWDEMASM in the LISTING column with XXDEMASM and press Enter to disable
the source listing. Be sure to change the name back to CWDEMASM when you have
completed the procedures in this chapter, or simply end your Xpediter session.
4. Press Clear to return to CICS to start your test.
5. On a blank CICS screen, type XASM or your transaction ID and press Enter. This
displays the Demonstration Transaction screen shown in Figure 4-20.

Figure 4-20. Demonstration Transaction Screen

XASM _____ - ENTER EMPLOYEE NUMBER C123



*** COMPUWARE CORPORATION ***
DEMONSTRATION TRANSACTION

ENTER DESIRED EMPLOYEE ABOVE:
00001 - CAUSES ASRA ABEND
00002 - AEIM ABEND
00003 - AEIP ABEND
00999 - ENDS NORMALLY

6. To cause an ASRA abend in CWDEMASM, type 00001 and press Enter.


When no source is available for the abending program, Xpediter/CICS displays the
Assembler Break/Abend screen as shown in Figure 4-21.

Figure 4-21. Assembler Break/Abend Screen (2.20)

----------------- XPEDITER/CICS - ASSEMBLER BREAK/ABEND (2.20) ------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM +++++++++++ NO SOURCE AVAILABLE. USE HELP KEY ++++++++++++
CAUSE: DATA EXCEPTION (TRACED) ABEND CODE: ASRA
APPLID: ACMEC123 USERID: MYUSRID TERM: A011 NETNAME: ACMA011 TRAN: XASM
INTERRUPT OFFSET: 000252 ADDRESS: 8AEFA27A PSW: 079D0000 8AEFA280 00060007
RESUME OFFSET: 000252 ADDRESS: 8AEFA27A LAST CICS COMMAND: 0012E

INSTRUCTION: FC42 D267 D25A MP X'267'(5,13),X'25A'(3,13)
REGISTERS:

R0 R1 R2 R3 R4 R5 R6 R7
00102B60 00102950 80045570 0AEFA028 0AAEE9F0 0AB732AF 0AB742AE 0AB752AD

R8 R9 R10 R11 R12 R13 R14 R15
00045980 00100430 00000000 001000D0 008AC000 001028E8 8AEFA158 00000000

The program name is displayed at the top of the screen. Below the program name is
the cause of the abend, which is a data exception, and the abend code, which is
ASRA. Statistical information such as the current offset of the interrupted
instruction, its physical address, and the program status word (PSW) in use are
displayed. Notice that Xpediter/CICS displays the resume offset and address, should
you wish to continue processing.
Next we see the current instruction, complete with its operation code and operands.
Xpediter/CICS also shows that disassembled instruction to the right. From this, you
see the ASRA occurred on a multiply decimal (MP) instruction.
Toward the bottom of the screen, all 16 of the current general purpose registers are
displayed. You will see later that these registers can also be modified.
Since an ASRA took place on an MP instruction, there is a good chance that one or
both of the multipliers contain invalid packed data. To test this theory, you can view
Debugging Applications Without Source Code 4-15

the data. But first, look at the instruction MP 267(5,13),25A(3,13). Since an MP


instruction utilizes an IBM SS format, you can determine the first operand is 5 bytes
long and is located 267 off register 13. The second operand is 3 bytes in length,
located 25A off register 13.

Modifying Storage
1. Type =2.2 in the COMMAND field and press Enter, or press PF14, to transfer to the
Memory Display screen (2.2) as shown in Figure 4-22.

Figure 4-22. Viewing Program Storage on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
TABLE/AREA: PGM TABLE ENTRY ID: ________
ADDRESS: 38CCD028 HEX OFFSET: _______________________________
USE CONTENTS: _ ADD OFFSET: _____ ERDSA

CCSID TYPE: EBCDIC
00000000 000 90ECD00C 183F4510 300E0BA2 000058F0 * ..}........s...0 * 38CCD028
00000010 010 33E805EF 50D01004 18F1BF1F D0184780 * .Y..&}...1..}... * 38CCD038
00000020 020 3028D207 F05C1000 18DF58B0 D05C4100 * ..K.0*.....^}*.. * 38CCD048
00000030 030 D1004110 0AA041E0 354018F1 0E0ED20F * J......\. .1..K. * 38CCD058
00000040 040 D20033C0 D20FDB80 33D0F820 D25A3482 * K..{K....}8.K!.b * 38CCD068
00000050 050 4110D068 41E03450 41F033EC 90EF1000 * ..}..\.&.0...... * 38CCD078
00000060 060 96801004 58F033F0 05EFD501 B0183466 * o....0.0..N.^... * 38CCD088
00000070 070 472030F8 4100D477 4810D260 41E0D476 * ...8..M...K-.\M. * 38CCD098
00000080 080 58F033F4 0E0ED20E D477D2FC D204D48B * .0.4..K.M.K.K.M. * 38CCD0A8
00000090 090 D30BD21C D527D310 D21CD577 D32DD21C * L.K.N.L.K.N.L.K. * 38CCD0B8
000000A0 0A0 D617D34A D21CD667 D367D21C D6B7D384 * O.L¢K.O.L.K.O.Ld * 38CCD0C8
000000B0 0B0 D21CD707 D3A1D21C D757D3BE D204D486 * K.P.L~K.P.L.K.Mf * 38CCD0D8
000000C0 0C0 3483D21B D49033F8 4110D068 41E03488 * .cK.M..8..}..\.h * 38CCD0E8
000000D0 0D0 1BFF1B00 90E01000 41E0D477 41F0D260 * .....\...\M..0K- * 38CCD0F8
000000E0 0E0 90EF100C 96801010 58F033F0 05EFD204 * ....o....0.0..K. * 38CCD108
000000F0 0F0 D27D3483 47F03354 4110D068 41E03468 * K'.c.0....}..\.. * 38CCD118

The Memory Display screen (2.2) shows a hexadecimal dump of your test program.
Any instruction or data in your program is available from here. Simply type the
displacement you wish to see in the ADD OFFSET field. To get this information, look
at a paper listing of your assembly. If you know the fields you want to see, you don’t
need a paper listing.
2. To display the contents of your first multiplier, you must tell Xpediter/CICS where to
look:
– Overtype PGM in the TABLE/AREA field with R13, and
– Type +267 in the HEX OFFSET field.
When you press Enter, the display is positioned at the first data item as shown in
Figure 4-23.
4-16 Xpediter/CICS Assembler User Guide

Figure 4-23. Viewing Data Fields on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
TABLE/AREA: R13 TABLE ENTRY ID: ________
ADDRESS: 00102308 HEX OFFSET: +00000267______________________
USE CONTENTS: _ ADD OFFSET: _____ UDSA

CCSID TYPE: EBCDIC
00000267 000 00000000 9C000000 00000000 00F0F0F0 * .............000 * 0010256F
00000277 010 00000811 40C6F0F0 F0F0F1D5 D4D94B40 * .... F00001NMR. * 0010257F
00000287 020 C4C1E5C9 C440C1C2 C5D5C4F4 F5F640D4 * DAVID ABEND456 M * 0010258F
00000297 030 C1C9D540 E2E340C8 D6D4C5E3 D6E6D5D4 * AIN ST HOMETOWNM * 0010259F
000002A7 040 C9F4F8F0 F1F09C02 0C000015 000C0000 * I48010.......... * 001025AF
000002B7 050 00000300 0C5B5B5B C9D4D94B 40D1D6C8 * .....$$$IMR. JOH * 001025BF
000002C7 060 D540C4D6 C5404040 F8F9F740 E3E4D3C9 * N DOE 897 TULI * 001025CF
000002D7 070 D7404040 C3C9E3E8 E3D6E6D5 D4C9F4F8 * P CITYTOWNMI48 * 001025DF
000002E7 080 F0F1F19C 020C0000 15000C00 00000003 * 011............. * 001025EF
000002F7 090 000C0004 0C114040 1DF0E7C1 E2D41140 * ...... .0XASM. * 001025FF
00000307 0A0 C51DD113 11404B1D F05C5C5C 40C3D6D4 * E.J.. ..0*** COM * 0010260F
00000317 0B0 D7E4E6C1 D9C540C3 D6D9D7D6 D9C1E3C9 * PUWARE CORPORATI * 0010261F
00000327 0C0 D6D5405C 5C5C4040 C4C5D4D6 D5E2E3D9 * ON *** DEMONSTR * 0010262F
00000337 0D0 C1E3C9D6 D540E3D9 C1D5E2C1 C3E3C9D6 * ATION TRANSACTIO * 0010263F
00000347 0E0 D54040C5 D5E3C5D9 40C4C5E2 C9D9C5C4 * N ENTER DESIRED * 0010264F
00000357 0F0 40C5D4D7 D3D6E8C5 C540C1C2 D6E5C57A * EMPLOYEE ABOVE: * 0010265F

Note that the displayed data area contains valid packed information. Since the five-
byte field contains 000000009C, the value is a packed 9.
3. Display the displacement of the second data item by typing +25A over the current
offset in the HEX OFFSET field. When you press Enter, the screen is positioned at the
second data item as shown in Figure 4-24.

Figure 4-24. Viewing Data Fields on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
TABLE/AREA: R13 TABLE ENTRY ID: ________
ADDRESS: 00102308 HEX OFFSET: +0000025A______________________
USE CONTENTS: _ ADD OFFSET: _____ UDSA

CCSID TYPE: EBCDIC
0000025A 000 5B5B5B00 0050032E 03320370 00000000 * $$$..&.......... * 00102562
0000026A 010 009C0000 00000000 0000F0F0 F0000008 * ..........000... * 00102572
0000027A 020 1140C6F0 F0F0F0F1 D5D4D94B 40C4C1E5 * . F00001NMR. DAV * 00102582
0000028A 030 C9C440C1 C2C5D5C4 F4F5F640 D4C1C9D5 * ID ABEND456 MAIN * 00102592
0000029A 040 40E2E340 C8D6D4C5 E3D6E6D5 D4C9F4F8 * ST HOMETOWNMI48 * 001025A2
000002AA 050 F0F1F09C 020C0000 15000C00 00000003 * 010............. * 001025B2
000002BA 060 000C5B5B 5BC9D4D9 4B40D1D6 C8D540C4 * ..$$$IMR. JOHN D * 001025C2
000002CA 070 D6C54040 40F8F9F7 40E3E4D3 C9D74040 * OE 897 TULIP * 001025D2
000002DA 080 40C3C9E3 E8E3D6E6 D5D4C9F4 F8F0F1F1 * CITYTOWNMI48011 * 001025E2
000002EA 090 9C020C00 0015000C 00000000 03000C00 * ................ * 001025F2
000002FA 0A0 040C1140 401DF0E7 C1E2D411 40C51DD1 * ... .0XASM. E.J * 00102602
0000030A 0B0 1311404B 1DF05C5C 5C40C3D6 D4D7E4E6 * .. ..0*** COMPUW * 00102612
0000031A 0C0 C1D9C540 C3D6D9D7 D6D9C1E3 C9D6D540 * ARE CORPORATION * 00102622
0000032A 0D0 5C5C5C40 40C4C5D4 D6D5E2E3 D9C1E3C9 * *** DEMONSTRATI * 00102632
0000033A 0E0 D6D540E3 D9C1D5E2 C1C3E3C9 D6D54040 * ON TRANSACTION * 00102642
0000034A 0F0 C5D5E3C5 D940C4C5 E2C9D9C5 C440C5D4 * ENTER DESIRED EM * 00102652

This time, the displayed field contains bad data. The three-byte packed field contains
5B5B5B, otherwise known as $$$. This error caused the ASRA.
4. Position the cursor on the bad data 5B5B5B area.
5. Replace the bad data by typing a valid packed number, such as 00045C, over the
data.
Debugging Applications Without Source Code 4-17

6. Press Enter to update the change. The data will contain a valid packed 45 as shown is
Figure 4-25.

Figure 4-25. Modifying Data on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
TABLE/AREA: R13 TABLE ENTRY ID: ________
ADDRESS: 00102308 HEX OFFSET: +0000025A______________________
USE CONTENTS: _ ADD OFFSET: _____ UDSA

CCSID TYPE: EBCDIC
0000025A 000 00045C00 0050032E 03320370 00000000 * ..*..&.......... * 00102562
0000026A 010 009C0000 00000000 0000F0F0 F0000008 * ..........000... * 00102572
0000027A 020 1140C6F0 F0F0F0F1 D5D4D94B 40C4C1E5 * . F00001NMR. DAV * 00102582
0000028A 030 C9C440C1 C2C5D5C4 F4F5F640 D4C1C9D5 * ID ABEND456 MAIN * 00102592
0000029A 040 40E2E340 C8D6D4C5 E3D6E6D5 D4C9F4F8 * ST HOMETOWNMI48 * 001025A2
000002AA 050 F0F1F09C 020C0000 15000C00 00000003 * 010............. * 001025B2
000002BA 060 000C5B5B 5BC9D4D9 4B40D1D6 C8D540C4 * ..$$$IMR. JOHN D * 001025C2
000002CA 070 D6C54040 40F8F9F7 40E3E4D3 C9D74040 * OE 897 TULIP * 001025D2
000002DA 080 40C3C9E3 E8E3D6E6 D5D4C9F4 F8F0F1F1 * CITYTOWNMI48011 * 001025E2
000002EA 090 9C020C00 0015000C 00000000 03000C00 * ................ * 001025F2
000002FA 0A0 040C1140 401DF0E7 C1E2D411 40C51DD1 * ... .0XASM. E.J * 00102602
0000030A 0B0 1311404B 1DF05C5C 5C40C3D6 D4D7E4E6 * .. ..0*** COMPUW * 00102612
0000031A 0C0 C1D9C540 C3D6D9D7 D6D9C1E3 C9D6D540 * ARE CORPORATION * 00102622
0000032A 0D0 5C5C5C40 40C4C5D4 D6D5E2E3 D9C1E3C9 * *** DEMONSTRATI * 00102632
0000033A 0E0 D6D540E3 D9C1D5E2 C1C3E3C9 D6D54040 * ON TRANSACTION * 00102642
0000034A 0F0 C5D5E3C5 D940C4C5 E2C9D9C5 C440C5D4 * ENTER DESIRED EM * 00102652

Now that you have corrected the data causing the error, you can continue with the
test.
7. Press PF6, or type =2.20 and press Enter, to return to the Assembler Break/Abend
screen (2.20).
8. To continue your test, re-execute the last instruction by pressing PF9 or typing GO 1
in the COMMAND field and pressing Enter. This time, the transaction should not
abend.
With valid data, the instruction did not abend with an ASRA. The session pauses at
the next hexadecimal offset, which Xpediter/CICS shows to be a move character
(MVC) instruction as shown in Figure 4-26.

Figure 4-26. Assembler Break/Abend Screen (2.20) Showing the GO 1 Command

----------------- XPEDITER/CICS - ASSEMBLER BREAK/ABEND (2.20) ------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ****** ASM-INST AT OFFSET 0252 EXECUTED STEP=00001 *******
CAUSE: PROG. PSW ADVANCED BY ONE-STEP (TRACED) ABEND CODE: STOP
APPLID: ACMEC123 USERID: MYUSRID TERM: A011 NETNAME: ACMA011 TRAN: XASM
INTERRUPT OFFSET: 000258 ADDRESS: 8AEFA280 PSW: 079D0000 8AEFA280 00060007
RESUME OFFSET: 000258 ADDRESS: 8AEFA280 LAST CICS COMMAND: 0012E

INSTRUCTION: D204 D26F D267 MVC X'26F'(5,13),X'267'(13)
REGISTERS:

R0 R1 R2 R3 R4 R5 R6 R7
00102B60 00102950 80045570 0AEFA028 0AAEE9F0 0AB732AF 0AB742AE 0AB752AD

R8 R9 R10 R11 R12 R13 R14 R15
00045980 00100430 00000000 001000D0 008AC000 001028E8 8AEFA158 00000000

9. To continue the test, press PF12 or type GO in the COMMAND field and press Enter.
The program finishes without further abends, concluding our first exercise in
sourceless debugging (Figure 4-27).
4-18 Xpediter/CICS Assembler User Guide

Figure 4-27. Transaction Complete on the Demonstration Transaction Screen

*** COMPUWARE CORPORATION *** C123


DEMONSTRATION TRANSACTION

EMPLOYEE NUMBER: 00001
EMPLOYEE NAME: MR. DAVID ABEND
HOURS WORKED: 00045
HOURLY RATE: 9.00
GROSS PAY: 0000405.00

*** TRANSACTION COMPLETE ***

Sourceless Debugging with Breakpoints


Unlike most examples in this guide, this section does not follow a scenario tied to a
particular program and is not designed to correct any specific problem. Instead, it
demonstrates how you can use sourceless debugging in your environment. With that in
mind, you can either use a program of your own, or continue to use the demonstration
program CWDEMASM.

In the previous example, Xpediter/CICS trapped the program when it encountered an


abend, allowing you to fix the problem. This example demonstrates how to set
breakpoints to stop the program to gain access to code and data.

With Xpediter/CICS, you can set breakpoints at any instruction in any program,
regardless of whether you have source code.

1. From a cleared screen, type XPED CWDEMASM or XPED followed by your program
name. Press Enter.
Since there is no source to display, Xpediter/CICS displays the Memory Display
screen (2.2) (Figure 4-28), which shows your program in hexadecimal format. The
program is not running, but you can still set breakpoints.

Figure 4-28. Setting Breakpoints on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM +++++++++++ NO SOURCE AVAILABLE. USE HELP KEY ++++++++++++
TABLE/AREA: PGM TABLE ENTRY ID: ________
ADDRESS: 38CCD028 HEX OFFSET: _______________________________
USE CONTENTS: _ ADD OFFSET: _____ ERDSA

CCSID TYPE: EBCDIC
00000000 000 90ECD00C 183F4510 300E0BA2 000058F0 * ..}........s...0 * 38CCD028
00000010 010 33E805EF 50D01004 18F1BF1F D0184780 * .Y..&}...1..}... * 38CCD038
00000020 020 3028D207 F05C1000 18DF58B0 D05C4100 * ..K.0*.....^}*.. * 38CCD048
00000030 030 D1004110 0AA041E0 354018F1 0E0ED20F * J......\. .1..K. * 38CCD058
00000040 040 D20033C0 D20FDB80 33D0F820 D25A3482 * K..{K....}8.K!.b * 38CCD068
00000050 050 4110D068 41E03450 41F033EC 90EF1000 * ..}..\.&.0...... * 38CCD078
00000060 060 96801004 58F033F0 05EFD501 B0183466 * o....0.0..N.^... * 38CCD088
00000070 070 472030F8 4100D477 4810D260 41E0D476 * ...8..M...K-.\M. * 38CCD098
00000080 080 58F033F4 0E0ED20E D477D2FC D204D48B * .0.4..K.M.K.K.M. * 38CCD0A8
00000090 090 D30BD21C D527D310 D21CD577 D32DD21C * L.K.N.L.K.N.L.K. * 38CCD0B8
000000A0 0A0 D617D34A D21CD667 D367D21C D6B7D384 * O.L¢K.O.L.K.O.Ld * 38CCD0C8
000000B0 0B0 D21CD707 D3A1D21C D757D3BE D204D486 * K.P.L~K.P.L.K.Mf * 38CCD0D8
000000C0 0C0 3483D21B D49033F8 4110D068 41E03488 * .cK.M..8..}..\.h * 38CCD0E8
000000D0 0D0 1BFF1B00 90E01000 41E0D477 41F0D260 * .....\...\M..0K- * 38CCD0F8
000000E0 0E0 90EF100C 96801010 58F033F0 05EFD204 * ....o....0.0..K. * 38CCD108
000000F0 0F0 D27D3483 47F03354 4110D068 41E03468 * K'.c.0....}..\.. * 38CCD118

2. Position the cursor at the COMMAND field, type BEFORE +0, and press Enter. This
sets a breakpoint at the first instruction of the program. You can also set other
breakpoints from here, but one will be sufficient.
3. Press Clear to return to CICS.
Debugging Applications Without Source Code 4-19

4. Enter XASM or your own transaction ID to execute the test.


As in the last test, Xpediter/CICS displays the sourceless Assembler Break/Abend
screen (2.20) (Figure 4-29). This time, the program is stopped due to your breakpoint.
The first instruction in this program, at offset 000000, is a store multiple (STM). Your
program may begin with a different command, but it should still be paused at the
beginning.

Figure 4-29. First Breakpoint on the Assembler Break/Abend Screen (2.20)

----------------- XPEDITER/CICS - ASSEMBLER BREAK/ABEND (2.20) ------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM +++++++++++ NO SOURCE AVAILABLE. USE HELP KEY ++++++++++++
CAUSE: PROGRAM STOP ENCOUNTERED (TRACED) ABEND CODE: STOP
APPLID: ACMEC123 USERID: MYUSRID TERM: A011 NETNAME: ACMA011 TRAN: XASM
INTERRUPT OFFSET: 000000 ADDRESS: 8AEFA028 PSW: 079D0000 8AEFA02C 00040001
RESUME OFFSET: 000000 ADDRESS: 8AEFA028 LAST CICS COMMAND:

INSTRUCTION: 90EC D00C STM 14,12,X'00C'(13)
REGISTERS:

R0 R1 R2 R3 R4 R5 R6 R7
80045570 00100050 80045570 8AB722B0 0AAEE9F0 0AB732AF 0AB742AE 0AB752AD

R8 R9 R10 R11 R12 R13 R14 R15
00045980 00100430 00000000 0B4EB030 008AC000 0010005C 80085990 0AEFA028

While paused, you can set additional breakpoints.


5. If using CWDEMASM, type BEFORE +6A, or check a paper listing to find a valid,
executable offset to set a breakpoint in your own application. Press Enter.
6. Once the breakpoint is set, press PF12, or type GO in the COMMAND field and press
Enter, to return control to the program. The program will execute until it hits your
breakpoint as shown in Figure 4-32 on page 4-20.

Slow-Motion Execution through Code


While the program is paused at the new breakpoint, you can put the program in slow-
motion execution mode to watch as each instruction processes.

1. Type GO 10 1 in the COMMAND field and press Enter to execute the next ten
instructions. Since you coded a one second delay, each instruction briefly pauses on
the screen.
As shown in Figure 4-30, the CWDEMASM program finally comes to a stop at offset
+98 after executing the ten instructions.

Figure 4-30. Offset +98 on the Assembler Break/Abend Screen (2.20)

----------------- XPEDITER/CICS - ASSEMBLER BREAK/ABEND (2.20) ------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ****** ASM-INST AT OFFSET 0092 EXECUTED STEP=00010 *******
CAUSE: PROG. PSW ADVANCED BY ONE-STEP (TRACED) ABEND CODE: STOP
APPLID: ACMEC123 USERID: MYUSRID TERM: A011 NETNAME: ACMA011 TRAN: XASM
INTERRUPT OFFSET: 000098 ADDRESS: 8AEFA0C0 PSW: 079D2000 8AEFA0C0 00060001
RESUME OFFSET: 000098 ADDRESS: 8AEFA0C0 LAST CICS COMMAND: 00068

INSTRUCTION: D21C D577 D32D MVC X'577'(29,13),X'32D'(13)
REGISTERS:

R0 R1 R2 R3 R4 R5 R6 R7
0010E43D 00000000 80045570 0AEFA028 0AAEE9F0 0AB732AF 0AB742AE 0AB752AD

R8 R9 R10 R11 R12 R13 R14 R15
00045980 00100430 00000000 001000D0 008AC000 0010DC98 0010E10E 40000000
4-20 Xpediter/CICS Assembler User Guide

Viewing Traced Offsets


During your test, Xpediter’s trace facility has been active.

1. To view what has been traced, press PF17, or enter =2.4 in the COMMAND field and
press Enter. If multiple facilities have been traced, the Program Trace Directory screen
appears. Select your terminal on that screen.
Since source is not available, the task, program, and offsets are displayed on the
Program Trace screen (2.4) (Figure 4-31). With the offsets shown, you can see exactly
what was executed. You can scroll through the Program Trace screen (2.4).

Figure 4-31. Program Trace Screen (2.4)

--------------------- XPEDITER/CICS - PROGRAM TRACE (2.4) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
TERM: A011 ----------------------------------------------- Before CWDEMASM.+98
=======> TASK(00061) MODULE:CWDEMASM CSECT:CWDEMASM NO SOURCE AVAILAB
<BRANCH>
EXECUTED OFFSETS +000070 THRU +000074
<BRANCH>
EXECUTED OFFSETS +000074 THRU +000078
<BRANCH>
EXECUTED OFFSETS +000078 THRU +00007C
<BRANCH>
EXECUTED OFFSETS +00007C THRU +000080
<BRANCH>
EXECUTED OFFSETS +000080 THRU +000084
<BRANCH>
EXECUTED OFFSETS +000084 THRU +000086
<BRANCH>
EXECUTED OFFSETS +000086 THRU +00008C
<BRANCH>
EXECUTED OFFSETS +00008C THRU +000092
<BRANCH>
EXECUTED OFFSETS +000092 THRU +000092
******************************** BOTTOM OF DATA *******************************

2. Press PF6, or type =2.20 in the COMMAND field and press Enter, to return to the
Assembler Break/Abend screen (2.20).

Figure 4-32. Second Breakpoint on the Assembler Break/Abend Screen (2.20)

----------------- XPEDITER/CICS - ASSEMBLER BREAK/ABEND (2.20) ------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM +++++++++++ NO SOURCE AVAILABLE. USE HELP KEY ++++++++++++
CAUSE: PROGRAM STOP ENCOUNTERED (TRACED) ABEND CODE: STOP
CICS SYSTEM: ACMEC123 TERM ID: 1055 NETNAME: ACMA011 TRANS ID: XASM
INTERRUPT OFFSET: 00006A ADDRESS: 000F7892 PSW: 078D1000 000F7898 00060001
RESUME OFFSET: 00006A ADDRESS: 000F7892 LAST CICS COMMAND: 00068

INSTRUCTION: D501 B018 3466 CLC 018(2,11),466(3)
REGISTERS:

R0 R1 R2 R3 R4 R5 R6 R7
001ADF98 001AD4B0 869DBEAC 000F7828 0005C8A0 869DDC1A 0006AE60 000080B0

R8 R9 R10 R11 R12 R13 R14 R15
06B23148 00000000 06B23148 0006B3E0 008C7000 001AD448 000F7892 00000000

Modifying the Logic Path


You can change a sourceless program’s logic path using the offset option of the GOTO
command to branch to another location. This is an excellent method to test code that
has not been tested or to which other programs are rarely branched.
Debugging Applications Without Source Code 4-21

1. Type GOTO +92, or another offset, in the COMMAND field to change your execution
pointer. Press Enter.

Figure 4-33. New Location on the Assembler Break/Abend Screen (2.20)

----------------- XPEDITER/CICS - ASSEMBLER BREAK/ABEND (2.20) ------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ******************** GOTO OFFSET X'92 *********************
CAUSE: PROG. PSW ADVANCED BY ONE-STEP (TRACED) ABEND CODE: STOP
APPLID: ACMEC123 USERID: MYUSRID TERM: A011 NETNAME: ACMA011 TRAN: XASM
INTERRUPT OFFSET: 000098 ADDRESS: 8AEFA0C0 PSW: 079D2000 8AEFA0C0 00060001
RESUME OFFSET: 000092 ADDRESS: 8AEFA0BA LAST CICS COMMAND: 00068

INSTRUCTION: D21C D577 D32D MVC X'577'(29,13),X'32D'(13)
REGISTERS:

R0 R1 R2 R3 R4 R5 R6 R7
0010E43D 00000000 80045570 0AEFA028 0AAEE9F0 0AB732AF 0AB742AE 0AB752AD

R8 R9 R10 R11 R12 R13 R14 R15
00045980 00100430 00000000 001000D0 008AC000 0010DC98 0010E10E 40000000

As shown in Figure 4-33, the program branched to the new location. If you were to
begin single-step execution with the GO command, that instruction would execute.

Single-Stepping through Code


1. Press PF9, or type GO 1 in the COMMAND field and press Enter, to execute the
current instruction.
Figure 4-34 shows the instruction was executed. The offset was incremented, and a
new instruction is shown.

Figure 4-34. Instruction Executed on the Assembler Break/Abend Screen (2.20)

----------------- XPEDITER/CICS - ASSEMBLER BREAK/ABEND (2.20) ------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ****** ASM-INST AT OFFSET 0092 EXECUTED STEP=00001 *******
CAUSE: PROG. PSW ADVANCED BY ONE-STEP (TRACED) ABEND CODE: STOP
APPLID: ACMEC123 USERID: MYUSRID TERM: A011 NETNAME: ACMA011 TRAN: XASM
INTERRUPT OFFSET: 000098 ADDRESS: 8AEFA0C0 PSW: 079D2000 8AEFA0C0 00060001
RESUME OFFSET: 000098 ADDRESS: 8AEFA0C0 LAST CICS COMMAND: 00068

INSTRUCTION: D21C D577 D32D MVC X'577'(29,13),X'32D'(13)
REGISTERS:

R0 R1 R2 R3 R4 R5 R6 R7
0010E43D 00000000 80045570 0AEFA028 0AAEE9F0 0AB732AF 0AB742AE 0AB752AD

R8 R9 R10 R11 R12 R13 R14 R15
00045980 00100430 00000000 001000D0 008AC000 0010DC98 0010E10E 40000000

Modifying Registers
Sometimes in testing, you need a different value or address in a register to achieve the
desired results. Xpediter/CICS gives you this capability. The registers you see on your
screen are dynamic; as your program manipulates them, you can see them change. You
also have the option of changing them yourself.

1. To change the value of register 0, overtype the current value with 001C0000.
2. To change R5 and R14 to high-values and low-values, overtype the contents of the
registers with FFFFFFFF and 00000000 respectively. Press Enter.
The resulting screen (Figure 4-35) shows the changed values in registers R0, R5, and
R14. Xpediter/CICS placed the original register value above the changed register. This
4-22 Xpediter/CICS Assembler User Guide

is displayed so you will know what it was, should you need to change it back to its
former value or address.

Remember to end your session as described in “Exiting Xpediter/CICS and Ending a


Debugging Session” on page 2-5. Also, if you renamed CWDEMASM at the start of this
chapter, remember to first undo this change on the List of CSECTs screen (2.6.1).

This concludes sourceless debugging. Remember, aside from a lack of source displayed on
the screen, it is the same as any other testing and debugging session in Xpediter/CICS.

Figure 4-35. Modifying Registers on the Assembler Break/Abend Screen (2.20)

----------------- XPEDITER/CICS - ASSEMBLER BREAK/ABEND (2.20) ------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
CAUSE: PROG. PSW ADVANCED BY ONE-STEP (TRACED) ABEND CODE: STOP
APPLID: ACMEC123 USERID: MYUSRID TERM: A011 NETNAME: ACMA011 TRAN: XASM
INTERRUPT OFFSET: 000098 ADDRESS: 8AEFA0C0 PSW: 079D2000 8AEFA0C0 00060001
RESUME OFFSET: 000098 ADDRESS: 8AEFA0C0 LAST CICS COMMAND: 00068

INSTRUCTION: D21C D577 D32D MVC X'577'(29,13),X'32D'(13)
REGISTERS:
0010E43D 0AB732AF
R0 R1 R2 R3 R4 R5 R6 R7
001C0000 00000000 80045570 0AEFA028 0AAEE9F0 FFFFFFFF 0AB742AE 0AB752AD


0010E10E
R8 R9 R10 R11 R12 R13 R14 R15
00045980 00100430 00000000 001000D0 008AC000 0010DC98 00000000 40000000
5-1

Chapter 5.
Analyzing Program Execution Chap 5

This chapter shows how to analyze the execution of a program in order to uncover loops
and dead code as well as validate logic paths. It discusses how to prepare for analysis of a
program, execute the program, then analyze the data.

The COUNT command is used to designate portions of the application code you want to
analyze. As each designated statement is executed, a counter is incremented. After your
test is completed, Xpediter/CICS examines the counters and provides statistics about the
executed code.

Note: The demonstrations in this chapter should be performed in Xpediter’s standard


operating mode — not one of the three restricted modes. For more information,
see the Xpediter/CICS Reference Manual.

Setting Up the Analysis


1. Type XPED CWDEMASM in the upper left corner of a blank CICS screen and press
Enter.
2. Type COUNT ALL LABELS in the COMMAND field and press Enter.
The message SET AT NEXT EXECUTABLE VERB is displayed. This indicates that
counts have been set on all labels in the program.
3. Type SET FOOT ANALYZE and press Enter to display the ANALYZE footing. When
you are done using FOOT ANALYZE (or any FOOT command), turn it off by typing
SET FOOT OFF and pressing Enter.
4. Type =1.1 in the COMMAND field and press Enter to display the List Breakpoints
screen (1.1) (Figure 5-1).

Figure 5-1. Setting Up Analysis on the List Breakpoints Screen (1.1)

-------------------- XPEDITER/CICS - LIST BREAKPOINTS (1.1) ---------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22

BREAK AT
-STMT- -OFFSET- ---------------- SOURCE / CONDITION -----------------------
000450 C 00000074 000074 4100 D477 00477 BUILDMP1 LA R0, 0000000
000464 C 000000BC 0000BC D204 D486 3483 00486 00483 SENDMP1 MVC PAY 0000000
000489 C 000000F8 0000F8 4110 D068 00068+ LA 1,D 0000000
000548 C 000001C4 0001C4 D204 DB15 D486 00B15 00486 MVC EMP 0000000
000572 C 000001F8 0001F8 D204 DB15 D486 00B15 00486 MVC EMP 0000000
000595 C 00000230 000230 D23C D220 D282 00220 00282 ASRAABND MVC WOR 0000000
000597 C 0000023A 00023A D23C D220 D2BF 00220 002BF NORMAL MVC WOR 0000000
000598 C 00000240 000240 D204 D267 D266 00267 00266 PROCESS MVC CUR 0000000
000608 C 00000270 000270 4100 D7A5 007A5 SENDMAP2 LA R0, 0000000
000652 C 0000030E 00030E 4110 D068 00068+ LA 1,D 0000000
000659 C 00000324 000324 D21B D490 3418 00490 00418 MAPFAIL MVC PAY 0000000
000682 C 00000354 000354 4110 D068 00068+ LA 1,D 0000000
______
-------------------- S T A T E M E N T A N A L Y S I S --------------------
STATEMENTS TO BE ANALYZED: 12 TOTAL ANALYZED COUNT: 0
ANALYZED STATEMENTS EXECUTED: 0 HIGHEST COUNT: 0
ANALYZED STATEMENTS NOT EXEC: 12 HIGHEST COUNT STMT: 000000
PERCENTAGE STATEMENTS EXEC: 0 LABEL: CWDEMASM
5-2 Xpediter/CICS Assembler User Guide

This screen shows the statements that were set to be analyzed, as well as the statistics
concerning the execution. The STATEMENTS TO BE ANALYZED field is set to 12,
indicating that there are 12 labels with executable statements in the program in this
example. The ANALYZED STATEMENTS NOT EXEC field is set to 12 because the program
has not been executed yet. All other values are set to 0 for the same reason. Notice that
the COUNT field for each statement is set to 0.

Executing the Program


1. Press Clear to return to CICS and execute the program.
2. Type XASM in the upper left corner of the screen.
3. Press Enter to display the XASM Demonstration Transaction screen.
4. Type 00999 and press Enter. The XASM Demonstration Transaction results screen
appears, indicating that a that the transaction is complete (Figure 5-2).

Figure 5-2. Storage Violation on the Demonstration Transaction Screen

*** COMPUWARE CORPORATION ***


DEMONSTRATION TRANSACTION

EMPLOYEE NUMBER: 00999
EMPLOYEE NAME: MR. JOHN DOE
HOURS WORKED: 00040
HOURLY RATE: 9.00
GROSS PAY: 0000360.00

*** TRANSACTION COMPLETE ***

Analyzing the Data


1. Press Clear.
2. Type XPED CWDEMASM from a cleared CICS screen and press Enter to display the
Source Listing screen (2.L).
The STATEMENT ANALYSIS area displays statistics for the last execution of
CWDEMASM, as shown in Figure 5-3.
Analyzing Program Execution 5-3

Figure 5-3. Showing Statistics For Analysis on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------ --------------------------------------------------------------------->
000390 + STM 14,12,12(13) SAVE CALLER'S REGISTERS @BBAC8
000391 +*********************************************************************
000392 +* ESTABLISH CODE ADDRESSIBILITY
000393 +*********************************************************************
000394 + USING *-4,3 @BBAC8
000395 + LR 3,15 @BBAC8
000396 +*********************************************************************
000397 +* OBTAIN DYNAMIC STORAGE
000398 +*********************************************************************
000399 + BAL 1,*+8 @L
000400 + DC AL2(DFHEIEND-DFHEISTG) LENGTH OF STORAGE @L
000401 + DC H'0' IDENTIFIES CICS 1.7 LEVEL @L
000402 + L 15,=V(DFHEAI0) @F8E1S @L
000403 + BALR 14,15 OBTAIN STORAGE @F8E1S @L
000404 + ST 13,DFHEISA-DFHEISTG+4(,1) CHAIN TO CALLER'S @F8E1S @L
-------------------- S T A T E M E N T A N A L Y S I S --------------------
STATEMENTS TO BE ANALYZED: 12 TOTAL ANALYZED COUNT: 8
ANALYZED STATEMENTS EXECUTED: 8 HIGHEST COUNT: 1
ANALYZED STATEMENTS NOT EXEC: 4 HIGHEST COUNT STMT: 000450
PERCENTAGE STATEMENTS EXEC: 66 LABEL: BUILDMP1

In this example, the statistics in the STATEMENT ANALYSIS area have changed to
show the number of statements that were executed.
This area shows that 12 statements were set for analysis. Of these, 8 were executed
and 4 were not. The 8 paragraphs were executed a total of 8 times (TOTAL ANALYZED
COUNT), with each executing 1 time (HIGHEST COUNT). If program logic contained
a loop, the HIGHEST COUNT would be more than 1 and the HIGHEST COUNT STMT
would identify the statement number where the loop occurred. In this example,
there is no loop, so instead the HIGHEST COUNT STMT shows the first occurrence of
the statements with a COUNT of 1. LABEL shows the name of the paragraph that
contains that statement.
3. Type L 450 in the COMMAND field to locate statement 450 (the first occurrence of
the statements with a COUNT of 1) and press Enter to see where the most frequently
executed statement is located (Figure 5-4).

Figure 5-4. Browsing Source Code on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> PAGE
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
------ --------------------------------------------------------------------->
000450 BUILDMP1 LA R0,PAYMAP1 MOVE 0000001
000451 LH R1,PAYMP1AL SPACES
000452 LA R14,SPACES1 TO
000453 L R15,=X'40000000' MAP
000454 MVCL R0,R14 ONE.
000455 MVC PAYFLD1,MAPFLD1 MOVE
000456 MVC PAYFLD1A,MAPFLD1A HEADINGS
000457 MVC PAYMSG3,MAPMSG3 TO
000458 MVC PAYMSG4,MAPMSG4 MAP
000459 MVC PAYMSG6,MAPMSG6 ONE
000460 MVC PAYMSG7,MAPMSG7 AND
000461 MVC PAYMSG8,MAPMSG8 SEND TO
000462 MVC PAYMSG9,MAPMSG9 SEND TO
000463 MVC PAYMSG10,MAPMSG10 SEND TO
000464 SENDMP1 MVC PAYEMP1,=C'_____' SCREEN. 0000001
000465 MVC PAYPRMPT(28),=C'- ENTER EMPLOYEE NUMBER '
000466 * EXEC CICS SEND FROM(PAYMAP1) LENGTH(PAYMP1AL) ERASE
000467 DFHECALL =X'040430000800000081000040000000',,,(______RF,PAYM
------ 1),(FB_2,PAYMP1AL)
000468 +*********************************************************************
5-4 Xpediter/CICS Assembler User Guide

You can use the FIND COUNT command to browse through the source listing and
examine the COUNT associated with each statement. You can also use the SHOW COUNT
command to display the lines selected for analysis. By looking at these counts, you can
easily see how your program is processing. If Xpediter’s trace function has been activated,
you can also view the Program Trace screen (2.4) to review the logic flow.

You can reset the analysis by deleting the old COUNT command and entering a new
COUNT command. It can be turned OFF by entering the DELETE COUNT command.

You can also use the COUNT command to check the overall efficiency of your program.
Use the COUNT ALL command to set up an analysis for the entire program, then execute
each logic path in the program without resetting the analysis. Review the STATEMENT
ANALYSIS to determine if any code has not been executed. By leaving the analysis active
and executing all logic paths in the program, you can easily pinpoint code that was not
executed.

Note: The C, COBOL, and PL/I sample programs include a loop that leads to a storage
violation. Refer to the chapter entitled Analyzing Program Execution in the C User’s
Guide, the COBOL User’s Guide, or the PL/I User’s Guide.

Remember to end the session as described in “Exiting Xpediter/CICS and Ending a


Debugging Session” on page 2-5.
6-1

Chapter 6.
Monitoring Tasks Started from Remote Terminals Chap 6

This chapter describes how to use the Trap Summary screen (1.6) to monitor remote
terminals and non-terminal related tasks. The Trap Summary screen assigns a master
terminal to be used to trap abends occurring at other terminals or in non-terminal tasks.

The first four sections in this chapter assume that an end user is experiencing a problem
with a program. A person in the systems group will monitor the program for abends.
These sections show how to set remote traps and view a remote session, how to defer
remote trap selection, and how to release trapped terminals. The last section explains the
technique you should use when debugging programs that are not related to terminals.

Note: For information on debugging MRO and ISC transactions, distributed transaction
processing, and distributed program link, refer to the Xpediter/CICS Reference
Manual.

Note: The demonstrations in this chapter should be performed in Xpediter/CICS’s


standard operating mode — not one of the three restricted modes. For more
information, see the Xpediter/CICS Reference Manual.

Setting Remote Traps


1. On a blank CICS screen, type XPED and press Enter. The Xpediter/CICS Primary
Menu will be displayed.
2. Select the session control option by typing 1 in the COMMAND field and pressing
Enter. The Session Control Menu appears (Figure 6-1).

Figure 6-1. Session Control Menu

------------------- XPEDITER/CICS - SESSION CONTROL MENU (1) --------------C123


COMMAND ===>
MODULE: CSECT:


1 LIST BREAKPOINTS - Display breakpoints for a single program
3 LIST ABENDS - Display abends associated with the session
4 TRACE SUMMARY - Display program trace entries
5 SAVED TRAPS - Display saved local or remote traps
6 TRAP SUMMARY - Display local or remote traps
7 INTERCEPT SUMMARY - Display active intercepts
8 STORAGE PROTECTION - Set storage protection options
9 USER LABELS - Define user labels
M MONITOR SUMMARY - Display active MONITOR entries
N NEWCOPY PROGRAMS - NEWCOPY (phasein) programs
P RESOURCE SUMMARY - Display count of breakpoints and keeps

3. Type 6 in the COMMAND field and press Enter. The Trap Summary screen (1.6)
appears. This screen is used to specify the terminals to be monitored for abends
and/or breakpoints.
The display on your screen will show an entry for your terminal. When the XPED
and XPRT transactions are used, an abend trap is automatically set for the terminal
on which these transactions are entered.
6-2 Xpediter/CICS Assembler User Guide

In this example, you know the transaction that is causing the problem. Set an abend
trap for a remote terminal.
4. Type ALL in the NETNAME and TERM fields.
5. Type XASM in the TRAN field.
6. Type an asterisk (*) in the PROGRAM field and press Enter to specify that all
programs involved in transaction XASM are monitored.
In Figure 6-2, for example, three traps have been set:
– For any transaction entered from terminal A011.
– For XASM transaction regardless of its origin. This means that all transactions
and programs executed at A011 are monitored for abends, as well as any
programs involved in the transaction XASM. If abend situations occur, the
information is displayed on your terminal.
– The third trap is an enhanced trap. If an abend occurs in any program beginning
with CWDEM running at terminal A999, and the initial commarea associated
with the task contains the string “test” starting in position 16 for a length of 4,
the information is displayed on your terminal. Also, any breakpoints in programs
beginning with CWDEM will be taken if the initial commarea meets the criteria
above and the transaction was started on terminal A999.
7. Press Clear to return to a blank CICS screen.

Figure 6-2. Setting a Trap on the Trap Summary Screen (1.6)

---------------------- XPEDITER/CICS - TRAP SUMMARY (1.6) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
MODE: TERM (IP TERM or ALL) NO IP TRAPS ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert)
M (Move) S (Save)

CMD USERID NETNAME TERM TRAN PROGRAM TRAP ABEND
IF ...................... TRAP CONDITION .......................
----------------------------------------------------------------------
_ ******** ******** A011 **** ******** YES
IF
_ ******** ******** **** XASM ******** YES
IF
_ ******** ******** A999 **** CWDEM*** YES
IF INITCOMM(16:4) = T'TEST'
_ ________ ________ ____ ____ ________ ___
IF

Viewing a Remote Session


Start the demonstration transaction from another terminal.

1. Log on to the CICS region at another terminal.


2. Type XASM on a blank CICS screen and press Enter. The Demonstration Transaction
screen is displayed.
3. Type 00001 and press Enter to cause an ASRA abend. The terminal is suspended.
4. Return to the original terminal. The Source Listing screen (2.L) (Figure 6-3) is
displayed showing CWDEMASM with a message that a remote abend has been
selected.
Monitoring Tasks Started from Remote Terminals 6-3

Figure 6-3. Reviewing a Remote Task on the Source Listing Screen

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ********* A REMOTE BREAK/ABEND HAS BEEN SELECTED **********
-------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->
CURRPAY PL5 +9
WRKHOUR PL3 ?????
**END**


------ ----------------------------- ASRA (DATA EXCEPTION) at CWDEMASM.603 ->
000600 MVC CURRPAY+4(1),WRKRATE MOVE WRKRATE INTO CURRPAY.
000601 * IF 00001 WAS ENTERED, AN ASRA WILL
000602 * OCCUR ON THE FOLLOWING INSTRUCTION....
=====> MP CURRPAY,WRKHOUR MULTIPLY CURRPAY BY WRKHOUR.
000604 MVC CURRTAXS+2(5),CURRPAY MOVE CURRPAY INTO CURRTAXS.
000605 MP CURRTAXS,WRKTAX MULTIPLY CURRTAXS BY WRKTAX.
000606 AP WRKYTDG,CURRPAY ADD WRKYTDG TO CURRPAY.
000607 AP WRKYTDT,CURRTAXS ADD WRKYTDT TO CURRTAXS.
000608 SENDMAP2 LA R0,PAYMAP2 MOVE
000609 LH R1,PAYMP2L SPACES
000610 LA R14,SPACES2 TO
000611 L R15,=X'40000000' MAP
000612 MVCL R0,R14 TWO.
000613 MVC PAYTITL1,MAPTITL1 MOVE

You now have control over the execution of this program. You can set breakpoints,
skips, and keeps, view program storage, step through the program, and resume
execution at another point. In this demonstration, you fix the data and continue
processing.
5. Position the cursor over the ????? in WRKHOUR, type 00040, and press Enter.
6. Type =1.6 in the COMMAND field and press Enter. The Trap Summary screen (1.6)
(Figure 6-4 on page 6-3) is displayed. Notice that the second trap entry has a
highlighted arrow following the CMD field. This arrow indicates which trap caused
the task to be routed to your session.

Figure 6-4. Trap Indicated on Trap Summary Screen (1.6)

---------------------- XPEDITER/CICS - TRAP SUMMARY (1.6) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
MODE: TERM (IP TERM or ALL) NO IP TRAPS ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert)
M (Move) S (Save)

CMD USERID NETNAME TERM TRAN PROGRAM TRAP ABEND
IF ...................... TRAP CONDITION .......................
----------------------------------------------------------------------
_ ******** ******** A011 **** ******** YES
IF
_ => ******** ******** **** XASM ******** YES
IF
_ ******** ******** A999 **** CWDEM*** YES
IF INITCOMM(16:4) = T'TEST'
_ ________ ________ ____ ____ ________ ___
IF

7. Return to the Source Listing screen (2.L) by typing SOURCE in the COMMAND field
and pressing Enter.
8. Press PF12 (GO) to continue processing. The message TASK WAS RESUMED is
displayed (Figure 6-5), and control is returned to the user terminal (Figure 6-6).
6-4 Xpediter/CICS Assembler User Guide

Figure 6-5. Resuming a Remote Task on the Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ******************** TASK WAS RESUMED *********************
------ --------------------------------------------------------------------->
000600 MVC CURRPAY+4(1),WRKRATE MOVE WRKRATE INTO CURRPAY.
000601 * IF 00001 WAS ENTERED, AN ASRA WILL
000602 * OCCUR ON THE FOLLOWING INSTRUCTION....
000603 MP CURRPAY,WRKHOUR MULTIPLY CURRPAY BY WRKHOUR.
000604 MVC CURRTAXS+2(5),CURRPAY MOVE CURRPAY INTO CURRTAXS.
000605 MP CURRTAXS,WRKTAX MULTIPLY CURRTAXS BY WRKTAX.
000606 AP WRKYTDG,CURRPAY ADD WRKYTDG TO CURRPAY.
000607 AP WRKYTDT,CURRTAXS ADD WRKYTDT TO CURRTAXS.
000608 SENDMAP2 LA R0,PAYMAP2 MOVE
000609 LH R1,PAYMP2L SPACES
000610 LA R14,SPACES2 TO
000611 L R15,=X'40000000' MAP
000612 MVCL R0,R14 TWO.
000613 MVC PAYTITL1,MAPTITL1 MOVE
000614 MVC PAYTITL2,MAPTITL2 HEADINGS
000615 MVC PAYLIN1,MAPLIN1 AND
000616 MVC PAYLIN2,MAPLIN2 OTHER
000617 MVC PAYLIN3,MAPLIN3 CALCULATED
000618 MVC PAYLIN4,MAPLIN4 FIELDS
000619 MVC PAYDEC1,MAPDEC1 TO

Figure 6-6. Demonstration Transaction Screen from the User Terminal

*** COMPUWARE CORPORATION *** C123


DEMONSTRATION TRANSACTION

EMPLOYEE NUMBER: 00001
EMPLOYEE NAME: MR. DAVID ABEND
HOURS WORKED: 00040
HOURLY RATE: 9.00
GROSS PAY: 0000360.00
*** TRANSACTION COMPLETE ***

Deferring Remote Trap Selection


If you set an abend trap for a commonly used transaction, and an abend occurs while you
are busy working on a task outside of Xpediter/CICS, you can defer viewing the trap
information. When you finish the other task, Xpediter/CICS displays the Source Listing
screen (2.L) with a message that an abend has occurred. At this point, you can choose to
resolve the abend, or you can defer working on it by pressing Clear and returning to
CICS. The abend is still trapped, the user’s terminal is suspended, and your terminal is
clear to be used for other functions. You can return to the abend at a later time. Note,
however, that the user terminal will remain suspended until it is released.

The List Abends screen (1.3) (Figure 6-7) displays the break/abend summary information
retained each time a break/abend is trapped. If a remote break/abend is still active, it is
highlighted and can be selected by typing an S in the SEL column and pressing Enter. The
Source Listing screen (2.L) is displayed for that task, and you have control over the
execution of the program. Other entries shown on this screen are abends that have been
trapped by this terminal during the debugging session.
Monitoring Tasks Started from Remote Terminals 6-5

Figure 6-7. List Abends Screen (1.3)

---------------------- XPEDITER/CICS - LIST ABENDS (1.3) ------------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:

CLIENT-IPADDR /
SEL TERM NETNAME TRAN PROGRAM STMT OFFSET ABEND TIME
-------------------------------------------------------------------------------
_ 0007 TCW00007 XASM CWDEMASM 000603 00252 ASRA 13:06:47

Releasing Trapped Transactions


Abend traps entered on the Trap Summary screen (1.6) Figure 6-2 on page 6-2 are in effect
throughout a debugging session. Xpediter/CICS monitors the user IDs, NETNAMEs,
terminals, transactions, and programs for which traps are set until you turn the traps off
or end the debugging session. In addition, all abends trapped during your debugging
session must be resolved or released before the user’s terminal regains control over the
program.

You can release the trapped transactions in one of several ways:

• Intercept the trap, fix the problem, and resume the program.
• Temporarily remove your trap and resume the program without fixing the problem.
• Select the trapped task on the List Abends screen (1.3), then access the Exit Session
screen (X) and request a dump of the program.
• End the debugging session by entering =X from any Xpediter/CICS screen.

When you end your session while remote abends are waiting and traps are active, all
trapped transactions are automatically freed and all abend traps are reset. To end your
session:

1. Type =X and press Enter. The Exit Session screen (X) (Figure 6-8) appears.
The lower portion of the Exit Session screen displays a summary of the current
testing session. The ACTIVE ABEND TRAPS field lets you know that you could be
receiving trap bulletins. The WAITING TASKS field indicates the number of remote
abends that have been trapped and have not yet been resumed or terminated. These
transactions are suspended until they are freed.
2. Type Y in the END SESSION field. If a dump is required, type Y in the DUMP OPTION
field. If you would like to execute a user or system script, type the script member
name in the POST SCRIPT field. Press Enter.
6-6 Xpediter/CICS Assembler User Guide

Figure 6-8. Exit Session Screen (X)

----------------------- XPEDITER/CICS - EXIT SESSION (X) ------------------C123


COMMAND ===>
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22

END SESSION: NO YES terminates the session, cleans up resources, and
frees any waiting remote tasks. NO returns to CICS
and leaves Xpediter active.

DUMP OPTION: NO YES forces a dump (or Abend-AID for CICS report) for
any active abends currently trapped by this terminal.
The site options for dump suppression have precedence.

POST SCRIPT: Script to execute at session termination.

PROGRAMS WITH BREAKS: 000
PROTECTION ENTRIES: 000
ACTIVE ABEND TRAPS: 003 (Individual trap entries set by this terminal)
WAITING TASKS: 002 (Active remote traps that have not been processed)

Press ENTER to process options.

To release a remotely trapped transaction without ending your session, do the following:

1. Select the transaction to be released on the List Abends screen (1.3).


2. Type =X and press Enter. The Exit Session screen (X) (Figure 6-8) appears.
3. Leave NO in the END SESSION field and type Y in the DUMP OPTION field. Press
Enter. With the DUMP OPTION field set to YES, Xpediter/CICS will generate a CICS
transaction dump and free the currently selected trapped transaction.

Note: If you clear the screen or press Enter on the Exit Session screen (X) with NO in the
END SESSION and DUMP OPTION fields, any remotely trapped transactions will
not be freed.

Viewing Traps for Asynchronous Transactions


The second entry shown in Figure 6-9 traps abends that occur only in asynchronous
transactions executing program ASYNCPGM.

Figure 6-9. Trap for Asynchronous Tasks on the Trap Summary Screen (1.6)

---------------------- XPEDITER/CICS - TRAP SUMMARY (1.6) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
MODE: TERM (IP TERM or ALL) NO IP TRAPS ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert)
M (Move) S (Save)

CMD USERID NETNAME TERM TRAN PROGRAM TRAP ABEND
IF ...................... TRAP CONDITION .......................
----------------------------------------------------------------------
_ ******** ******** A011 **** ******** YES
IF
_ ******** ******** NONE **** ASYNCPGM YES
IF
_ ________ ________ ____ ____ ________ ___
IF

To prepare for debugging an asynchronous task, set a trap as shown in Figure 6-9 to
provide abend protection for the program. Also set a breakpoint at the beginning of the
program to give you control of the program as soon as it starts.
Monitoring Tasks Started from Remote Terminals 6-7

To set a breakpoint at the beginning of a program, type the program name in the
MODULE field in the upper left portion of the screen, type BEFORE in the COMMAND
field, and press Enter.
6-8 Xpediter/CICS Assembler User Guide
7-1

Chapter 7.
Providing Storage Protection Chap 7

This chapter discusses the storage protection features of Xpediter/CICS, including setting
storage protection and allowing storage violations.

The first two sections show how Xpediter/CICS handles a storage violation and how you
can allow processing to continue after a violation has been intercepted. This exercise is
done using the XPED transaction.

For more information regarding storage violation protection, refer to the Xpediter/CICS
Reference Manual.

Note: The demonstrations in this chapter should be performed in Xpediter’s standard


operating mode — not one of the three restricted modes. For more information,
see the Xpediter/CICS Reference Manual.

Setting Storage Protection


If you have a program that is ready to go into production, you should test it to make sure
it is not causing storage violations. To do this, you use XPED to set up storage protection,
and then test the transaction.

Note: Although the examples use the XCB2 COBOL demonstration transaction, the
same techniques are used to monitor storage violations in an Assembler
environment.

1. Type XPED 1.8 in the upper left corner of a blank CICS screen.
2. Press Enter to display the Storage Protection screen (1.8) (Figure 7-1).

Figure 7-1. Storage Protection Screen (1.8)

------------------- XPEDITER/CICS - STORAGE PROTECTION (1.8) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
ENTRY 000000
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert) M (Move)

-----------PROTECTION OPTIONS-------
CMD TYPE TERM TRAN PROGRAM STORE FETCH SHR PGM CMD Store
-----------------------------------------------------------------------------
_ ____ ________ ___ ___ ___ ___ ___
_ ____ ________ ___ ___ ___ ___ ___
_ ____ ________ ___ ___ ___ ___ ___

3. Type CWDEMCB2 in the PROGRAM field in the middle of the screen and type Y in
the STORE field under PROTECTION OPTIONS.
4. Press Enter to enter these values and redisplay the Storage Protection screen (1.8). See
Figure 7-2.
7-2 Xpediter/CICS Assembler User Guide

Figure 7-2. Storage Protection Screen (1.8) with a Protection Entry

------------------- XPEDITER/CICS - STORAGE PROTECTION (1.8) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert) M (Move)

-----------PROTECTION OPTIONS-------
CMD TYPE TERM TRAN PROGRAM STORE FETCH SHR PGM CMD Store
-----------------------------------------------------------------------------
_ USER 0074 **** CWDEMCB2 YES NO NO NO NO
_ ____ ________ ___ ___ ___ ___ ___
_ ____ ________ ___ ___ ___ ___ ___

On the Storage Protection screen (1.8), Xpediter/CICS assigns a value of USER in the
TYPE field, indicating that this entry was set up by the user. The current terminal is
automatically entered in the TERM field.

The asterisks in the TRAN field indicate that this entry is valid for any transaction that
executes the program CWDEMCB2. The protection options FETCH, SHR, PGM, and CMD
Store are automatically set to NO. These entries are valid during the current debugging
session. For more information about these fields, press PF1.

Allowing Storage Violations


1. Press Clear to return to CICS to test the transaction.
2. Type XCB2 on a blank screen.
3. Press Enter to display the XCB2 Demonstration Transaction screen.
4. Type 00333 to cause a storage violation.
5. Press Enter to display the Source Listing screen (2.L) (Figure 7-3). On this screen,
Xpediter/CICS displays the messages

*****************SUBSCRIPT OUT OF BOUNDS*****************

and

------------ STOR (OVERLAPPING END STORG CHECK ZONE) at CWDEMCB2.559 ->

to show that a potential storage violation has been intercepted and prevented.
When storage protection is turned ON, Xpediter/CICS intercepts any program that
attempts to write in a CICS storage area that the program does not own.
Xpediter/CICS intercepts all programs that violate CICS storage, but in certain
instances, you may not agree with its analysis. The ALLOW command is used for
these cases.
In this example, the user might decide that the subscript is acceptable and that the
ALLOW command should be used to permit the storage violation to occur.
Providing Storage Protection 7-3

Figure 7-3. Source Listing Screen (2.L) - Intercepting a Storage Violation

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMCB2 ***************** SUBSCRIPT OUT OF BOUNDS *****************
LV ----- COBOL DATANAME KEEPS ---- -- ATTRIBUTES -- ----+---10----+---20--->
02 LS-FIELD-WITH-1 X(1) V
OCCURS 16 TIMES 1
77 LS-SUBSCRIPT S9(3) COMP-3 +017
**END**

------ ----------- STOR (OVERLAPPING END STORG CHECK ZONE) at CWDEMCB2.559 ->
000556 1040-INITIALIZE-STORAGE-WITH-V.
000557 MOVE +1 TO LS-SUBSCRIPT.
000558 1060-INITIALIZE-STORAGE-LOOP.
=====> MOVE 'V' TO LS-FIELD-WITH-1 (LS-SUBSCRIPT).
000560 IF LS-SUBSCRIPT > +16
000561 1 GO TO 1080-INITIALIZATION-DONE.
000562 ADD +1 TO LS-SUBSCRIPT.
000563 GO TO 1060-INITIALIZE-STORAGE-LOOP.
000564
000565 1080-INITIALIZATION-DONE.
000566 IF LS-SUBSCRIPT > +16 AND
000567 LS-FIELD-WITH-1 (LS-SUBSCRIPT) = 'V'
000568 1 MOVE STOR-VIOLATION-MSG TO MAP2-LINE5
000569 ELSE

Note: Xpediter/CICS is shipped with the ALLOWCM global parameter set to OFF for the
XPED transaction. Unless this value has been changed to ON at your site, you
will be unable to use the ALLOW command to allow the storage violation
described here. Read the remainder of the exercise to understand the concepts
presented.

6. Type ALLOW in the COMMAND field.


7. Press Enter to redisplay the Source Listing screen (2.L). Depending on the situation,
one of three things will happen:
a. The message

****** THE CURRENT STORAGE VIOL. WILL BE ALLOWED *******

is displayed to show that Xpediter/CICS will allow the storage violation to occur.
You would continue with the next step.
b. If the message

****** ALLOW COMMAND IS DISABLED IN GLOBAL TABLE ******

is displayed, ALLOWCM is set to OFF in the Xpediter/CICS global table, and


storage violations will not be allowed. If you want to use the ALLOW command,
talk to your site installer to have the ALLOWCM parameter value changed. Read
the remainder of the exercise to understand the concepts presented.
c. If the message

****** NOT ALLOWED TO VIOLATE CICS CONTROL INFO ******

is displayed, Xpediter/CICS has prevented you from accidentally overwriting


CICS storage check zones and causing a CICS storage violation, even though the
ALLOWCM parameter is set to ON. If you examine the program, you will notice
that the subscript is, in fact, too large for the area defined. The only way to
continue with this example is to manually change the value of LS-SUBSCRIPT to
17, for example, then use the GOTO command to resume from the next
statement. You can chose to do this before continuing with the next step, or
simply read the remainder of the exercise to understand the concepts presented.
8. Press PF12 to resume processing of the program. The program screen shown in Figure
7-4 appears, indicating that a storage violation occurred.
7-4 Xpediter/CICS Assembler User Guide

Figure 7-4. Demonstration Transaction Screen: Displaying a Storage Violation

*** COMPUWARE CORPORATION *** C123


DEMONSTRATION TRANSACTION


*** CWDEMCB2 HAS CAUSED A STORAGE VIOLATION ***




*** TRANSACTION COMPLETE ***

Remember to end the session as described in “Exiting Xpediter/CICS and Ending a


Debugging Session” on page 2-5.
8-1

Chapter 8.
Interfacing with Abend-AID for CICS Chap 8

This chapter discusses the interface to Abend-AID for CICS, which allows you to access
Abend-AID for CICS without leaving Xpediter/CICS.

This exercise assumes that you have completed the examples in Chapter 3, “Testing an
Assembler Program”.

In this chapter, Xpediter/CICS is turned on to monitor the XASM transaction, which


abends with an AEIM. Abend-AID for CICS is used to help solve the abend.

Note: If your site is using a release of Abend-AID for CICS other than that shown in this
chapter, your screens may appear different.

Note: The demonstrations in this chapter should be performed in Xpediter’s standard


operating mode — not one of the three restricted modes. For more information,
see the Xpediter/CICS Reference Manual.

Turning on Abend-AID for CICS


Abend-AID for CICS must be installed and turned on before interfacing with
Xpediter/CICS. If Abend-AID for CICS is already turned on, go to step 1 in the next
section. If Abend-AID for CICS is not turned on, complete the following steps:

1. Sign on to a valid CICS region.


2. Type AAON ON in the upper left corner of a blank CICS screen.
3. Press Enter. Abend-AID for CICS will display messages similar to the following:

CCACI0035I Abend-AID for CICS turned on in region APPLID ACMEC123 at...


CCACI0046I CICS APPLID ACMEC123 SYSID ACM1 connected to view server...
CCACI0074I CICS APPLID ACMEC123 on system ACM1 connected to TDCAS CF45...

Refer to the Abend-AID for CICS Reference Manual for more information on the use of Abend-
AID for CICS.

Accessing Abend-AID for CICS through Xpediter/CICS


1. To access Xpediter/CICS, type XPED in the upper left corner of a blank CICS screen.
2. Press Enter to display the Primary Menu shown in Figure 8-1.
8-2 Xpediter/CICS Assembler User Guide

Figure 8-1. Primary Menu (XPED/XPRT)

-------------------- XPEDITER/CICS 09.04.00 - PRIMARY MENU ----------------C123


COMMAND ===>
MODULE: CSECT:

0 SESSION PROFILE - Set default session attributes
1 SESSION CONTROL - Analyze summary of session events
2 DEBUGGING FACILITIES - Interactively debug application programs
5 FILE UTILITY - Access datasets, temp stg, trans data, DLI, DB2
7 ABEND-AID FOR CICS - Interface to Abend-AID for CICS

C CODE COVERAGE - Interface to Xpediter/Code Coverage
G XCHANGE/CICS - Interface to Xpediter/Xchange CICS Facilities
P CICSPLEX FACILITIES - Access CICSPlex Control Facilities
X EXIT - Exit Xpediter

To set breakpoints in your program or keep specific data fields,
enter your program name and use either the SOURCE command or PF key.

For Online Technical Support refer to: http://frontline.compuware.com


NOTICE: Press PF2/PF14 to display the Copyright/Trade Secret Notice

3. Press Clear. Xpediter/CICS is now set to trap abends.


4. Type XASM and press Enter. The Demonstration Transaction screen is displayed
(Figure 8-2).

Figure 8-2. Demonstration Transaction Screen

XASM _____ - ENTER EMPLOYEE NUMBER C123



*** COMPUWARE CORPORATION ***
DEMONSTRATION TRANSACTION

ENTER DESIRED EMPLOYEE ABOVE:
00001 - CAUSES ASRA ABEND
00002 - CAUSES AEIM ABEND
00003 - CAUSES AEIP ABEND
00999 - ENDS NORMALLY

5. To cause an AEIM abend, type 00002 in the field preceding ENTER EMPLOYEE
NUMBER and press Enter. The Source Listing screen (2.L) (Figure 8-3) will be
displayed.
Xpediter/CICS intercepts the abend and reports on the status of the problem.
However, you may need more information to resolve the problem. To obtain it, we
will access Abend-AID for CICS and issue a snap dump to produce a diagnostic report
for this AEIM abend.
Interfacing with Abend-AID for CICS 8-3

Figure 8-3. Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22
-------- DATA LABEL KEEPS -------- -- ATTRIBUTES -- ----+---10----+---20--->





------ ------------------ AEIM ("NOTFND" RECORD NOT FOUND) at CWDEMASM.589 ->
000586 + STM 14,0,12(1)
000587 + OI 20(1),X'80' LAST ARGUMENT
000588 + L 15,=V(DFHEI1)
=====> + BALR 14,15 INVOKE EXEC INTERFACE
000590 +*********************************************************************
000591 AEIPABND DS 0H
000592 * ** WRITE VSAM RECORD .....
000593 MVC EMP_NUM_KEY,PAYEMP1
000594 * EXEC CICS WRITE FROM (VSAM_EMP_RECORD)
000595 * DATASET ('DBUGEMP')
000596 * RIDFLD (EMP_NUM_KEY)
000597 * LENGTH (VSAM_RECORD_LENGTH)
000598 * KEYLENGTH (5)
000599 DFHECALL =X'0604F8000828004400',(CHA8,=CL8'DBUGEMP'),(______

6. Type MENU in the COMMAND field and press Enter to redisplay the Xpediter/CICS
Primary Menu.
7. Type 7 in the COMMAND field and press Enter to display the Abend-AID for CICS
Interface menu (7) (Figure 8-4).

Figure 8-4. Abend-AID for CICS Interface Menu (7)

--------------- XPEDITER/CICS - ABEND-AID FOR CICS INTERFACE (7) ----------C123


COMMAND ===>
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22


1 SNAP DUMP - Issue Abend-AID for CICS snap dump
2 REPORT DIRECTORY - Display Abend-AID for CICS report directory
3 DIAGNOSTICS - Display Abend-AID for CICS abend code diagnostic text

Issuing an Abend-AID for CICS Snap Dump


Abend-AID for CICS is an abend analysis tool that intercepts calls to the dump control
program and produces a diagnostic report. The report explains where an abend occurred,
why it happened, and how it can be fixed. To get this information, you must issue a snap
dump request.

1. To issue a snap dump, type 1 in the COMMAND field of the Abend-AID for CICS
Interface Menu (7).
2. Press Enter. A snap dump is taken for the AEIM abend, and Abend-AID for CICS is
automatically invoked to create the report for this abend. The Diagnostic Summary
of the Abend-AID for CICS report appears as shown in Figure 8-5.

Note: If the report file is set up to suppress duplicate reports and the current snap is
deemed a duplicate and suppressed, Abend-AID will not return a report
number to Xpediter. This will cause the report file directory to be displayed
instead of the current report. From the directory screen, you may use Abend-
AID’s masking facilities to filter the reports that are displayed.
8-4 Xpediter/CICS Assembler User Guide

The Diagnostic Summary gives detailed diagnostics about the trapped abend. The
paragraph at the top of the screen identifies the abend code (AEIMASRA), program
name (CWDEMASM), abending transaction (XASM), terminal, and user ID.
Additional paragraphs provide a detailed analysis of the abend.

Figure 8-5. Abend-AID for CICS Diagnostic Summary Screen

Abend-AID for CICS -------- Diagnostic Summary -------- Row 000001 of 000065
COMMAND ===> SCROLL ===> PAGE
MSDSD0539I Dump 13 (ACMEC123) successfully selected
An AEIM abend occurred in program CWDEMASM. The abending transaction was
XASM running at terminal 0638 for user ID MYUSRID.


Analysis of the abend:

The AEIM abend occurred when a READ request to a file (or User maintained
Data Table) DBUGEMP could not be satisfied because the record desired could
not be found in the file.

If this is a Data Table, the record may be present but may have been
rejected at initial load time by user exit "XDTRD" or may have been
subsequently deleted from the data table.

You may want to specify "HANDLE CONDITION NOTFND.." to trap this condition
in the future. The following is the search argument of the record that was
not found on Data Set DBUGEMP :

Char 00002
Zone FFFFF
Entry=0000013(ACMEC123) Code=AEIM CF450QCV AssistMenu=PF24 More...

3. Press PF8 to scroll through the report. A report example is shown in Figure 8-6.

Figure 8-6. Diagnostic Summary Screen (continued)

Abend-AID for CICS -------- Diagnostic Summary -------- Row 000038 of 000065
COMMAND ===> SCROLL ===> PAGE

Next Sequential Instruction
The program was compiled on 23JUL2003 and is 0005AC bytes long. It is part
of load module CWDEMASM which was loaded from SALESUP.ACMEC123.LOAD. It was
link edited on 23JUL2003 . The load module is 0010E0 bytes long. The program
AMODE is ANY. The program RMODE is ANY.



The execution key for this program was USER_KEY.


Last Call or EXEC CICS Command

The last call or 'EXEC CICS' command was issued from program CWDEMASM at
displacement 00000220.


Program Link Summary

Called Called ------- Status ------- Calling Calling Return
Entry=0000013(ACMEC123) Code=AEIM CF450QCV AssistMenu=PF24 More...

The Abend-AID for CICS report contains additional information that can be directly
accessed by entering the section’s number or name in the COMMAND field.
4. To display a menu of the report sections, press PF6. A report menu appears as shown
in Figure 8-7.
Interfacing with Abend-AID for CICS 8-5

Figure 8-7. Abend-AID for CICS Report Menu

Abend-AID for CICS -------- Diagnostic Summary -------- Row 000038 of 000065
COMMAND ===> SCROLL ===> PAGE

Next Sequential Instruction
The program was compiled on 23JUL2003 and is 0005AC bytes long. It is part
of load module C +---------- Row 00001 of 00020 -----------+ .LOAD. It was
link edited on 2 | 1 or DIAG - Diagnostic Summary | ng. The program
AMODE is ANY. Th | 2 or NSI - Diagnostic Summary |
| 3 or REGS - Registers |
| 4 or TRACE - CICS Trace |
| 5 or ENQ - Enqueues Held |
The execution ke | 6 or EIB - User EIB |
| 7 or PROG - Program Information Menu |
| 8 or PLIST - Program Link Summary |
Last Call or EXE | 9 or PSTOR - Program Link Summary |
| 10 or LINK - Program Link Summary |
The last call or | 11 or EXTER - Program Link Summary | CWDEMASM at
displacement 000 | Tab to the number or command Enter to |
| process it. |
| CF450QCV End=PF03 More... |
Program Link Sum +-----------------------------------------+

Called Called ------- Status ------- Calling Calling Return
Entry=0000013(ACMEC123) Code=AEIM CF450QCV AssistMenu=PF24 More...

Viewing the Abend-AID for CICS Report Directory


The Abend-AID for CICS interface allows an Xpediter/CICS user to access any Abend-AID
for CICS report. The Abend-AID for CICS Directory screen contains a list of available
reports.

1. To return to the Abend-AID for CICS Interface Menu (7), press PF4 until you are
returned to Xpediter/CICS. The menu appears as shown in Figure 8-8.

Figure 8-8. Abend-AID for CICS Interface Menu (7)

--------------- XPEDITER/CICS - ABEND-AID FOR CICS INTERFACE (7) ----------C123


COMMAND ===>
MODULE: CWDEMASM ********* ABEND-AID FOR CICS PROCESSING COMPLETED *********


1 SNAP DUMP - Issue Abend-AID for CICS snap dump
2 REPORT DIRECTORY - Display Abend-AID for CICS report directory
3 DIAGNOSTICS - Display Abend-AID for CICS abend code diagnostic text

2. To select the directory, type 2 in the COMMAND field.


3. Press Enter to display the Abend-AID for CICS Directory screen (Figure 8-9).
This screen displays all abend reports generated for this CICS region. Reports can be
selected by entering an S to the left of the Entry column next to the desired report.

Note: Your Abend-AID for CICS Directory screen display will differ from the one shown
here because abend activity varies from one CICS region to another.
8-6 Xpediter/CICS Assembler User Guide

Figure 8-9. Abend-AID for CICS Directory Screen

Abend-AID for CICS --- Abend-AID for CICS Directory --- Row 000001 of 000005
COMMAND ===> SCROLL ===> PAGE
FDBRC2100I User MYUSRID successfully logged on
M Menu L Lock H Dup History R Recall T Terminate Analysis
S Diag U Unlock I Information E Migrate C Change Priority
D Delete G Messages A Analyze P Print N Contact Information

Entry Job Name Code Tran Date Time Program Offset Dups Status
******* ******** ****** **** ********* ***** ******** ****** **** *******
0000013 ACMEC123 AEIM XASM 19AUG2003 12:21 CWDEMASM 000222 0 COMPLET
0000012 ACMEC123 AEIM XPLI 19AUG2003 11:55 CWDEMPL1 00098A 0 COMPLET
0000011 ACMEC123 AEIM XCB2 19AUG2003 11:23 CWDEMCB2 0014F2 0 COMPLET
0000005 ACMEC123 AEIM XCB2 12AUG2003 08:19 CWDEMCB2 0014F2 0 COMPLET
0000004 ACMEC123 ASRA XCB2 12AUG2003 08:06 CWDEMCB2 001134 0 COMPLET
**************************** BOTTOM OF DATA ******************************







Type a line command and press Enter to process it
CF450QCV AssistMenu=PF24

Viewing the Abend-AID for CICS Diagnostics


The Abend-AID for CICS interface provides additional diagnostics to help solve abends.

1. To return to the Abend-AID for CICS Interface Menu (7), press PF3. The menu
appears, and you are now back in Xpediter/CICS.
2. To view the diagnostic messages, type 3 in the COMMAND field.
3. Press Enter to display the Abend-AID for CICS Diagnostic Information screen (Figure
8-10).

Figure 8-10. Abend-AID for CICS Diagnostic Information Screen

Abend-AID for CICS ------ Diagnostic Information ------ Row 000001 of 000009
COMMAND ===> SCROLL ===> PAGE

The transaction was terminated with the AEIM abend because the exceptional
condition NOTFND occurred for which there was no 'EXEC CICS HANDLE
CONDITION' request active.

Either change the application program to prevent the condition recurring, or
to handle the condition using the "EXEC CICS HANDLE CONDITION' command. If
necessary, use the contents of the EIBRCODE field in the EIB or information
from the CICS trace table to assist in determining the cause of the
exception condition.

Since an AEIM abend was the last abend to occur, this screen automatically displays
the diagnostics for an AEIM. The diagnostics for all CICS abend codes can be
displayed from this screen.
4. To display more information for an AEIM abend, tab to the highlighted AEIM abend
code and press Enter. The IBM Message Text screen shown in Figure 8-11 on page 8-7
will be displayed.
Interfacing with Abend-AID for CICS 8-7

Figure 8-11. Abend-AID for CICS IBM Message Text Screen

Abend-AID for CICS --------- IBM Message Text --------- Row 000001 of 000011
COMMAND ===> SCROLL ===> PAGE

AEIM

Explanation:

NOTFND condition not handled.

This is one of a number of abends issued by the EXEC interface
program. Because of their similar characteristics these abends are
described as a group.

See the description of abend AEIA for further details.









CF450QCV AssistMenu=PF24

5. Press PF3 twice to return to Xpediter/CICS. The Abend-AID for CICS Diagnostics
screen (7) will be displayed as shown in Figure 8-12.

Figure 8-12. Abend-AID for CICS Diagnostics Screen (7)

-------------- XPEDITER/CICS - ABEND-AID FOR CICS DIAGNOSTICS (7) ---------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM ********* ABEND-AID FOR CICS PROCESSING COMPLETED *********
ABEND CODE: AEIM "NOTFND" RECORD NOT FOUND

6. To see another diagnostic message, type ASRAAICA in the ABEND CODE field.
7. Press Enter. The Abend-AID for CICS Diagnostic Information screen appears as shown
in Figure 8-13, with the explanation of an ASRAAICA abend.

Remember to end the session as described in “Exiting Xpediter/CICS and Ending a


Debugging Session” on page 2-5.
8-8 Xpediter/CICS Assembler User Guide

Figure 8-13. Abend-AID for CICS Diagnostic Information Screen for an ASRA Abend

Abend-AID for CICS ------ Diagnostic Information ------ Row 000001 of 000059
COMMAND ===> SCROLL ===> PAGE
FDBRC2100I User MYUSRID successfully logged on
The transaction was terminated with the ASRA abend because the CICS system
recovery detected a program check. This may occur for any of the following
reasons.

The invalid operation code exception occurs when the operation code of the
instruction to be executed is not a valid code or not available on the CPU
that the program is running on.

The priviledged operation exception normally occurs by executing a
priviledged instruction while the program is executing in problem state.
This is usually a symptom of another error.

The execute exception normally occurs by executing an "EXECUTE" instruction
by means of another "EXECUTE" instruction. This is usually a symptom of
another error.

The protection exception occurs when the storage protect key of an operand,
instruction, or data does not match the program's protection key. This
normally occurs by executing an instruction that either references or
resides at an illegal storage location. See also the notes on the
CF450QCV AssistMenu=PF24 More...
9-1

Chapter 9.
Using Automatic Trap Activation Chap 9

This chapter demonstrates Xpediter’s Automatic Trap Activation (ATA) feature. ATA traps
terminal-related transaction abends—but not breakpoints—without the user having an
Xpediter session running.

Enabling the ATA feature is optional and is done with the ATA global table parameter.
With the parameter set to OFF (the default), ATA is deactivated. Setting the parameter to
XPED, XPRT, or XPSP activates Automatic Trap Activation.

With ATA activated, if a terminal-related transaction is about to abend, the abend will be
trapped and Xpediter will be invoked on the terminal or 3270 Web Bridge session where
the transaction was initiated. The transaction used to invoke Xpediter is determined by
the value of the ATA global parameter. If the ATASCREEN global parameter is set to YES, a
customizable notification/decision screen will first be displayed. If the user decides to
debug the abending transaction, the Source Listing (2.L), Break/Abend (2.1), or Assembler
Break/Abend (2.20) screen will be displayed, depending on the transaction specified for
the ATA parameter and the availability of program source.

Trapping an Abend with ATA


In the following demonstration, the global parameter ATA has been set to XPED,
ATASCREEN has been set to YES, and source is available for program CWDEMASM.

Note: For the purpose of properly demonstrating Automatic Trap Activation—but not
for regular Xpediter/CICS use—you will first make sure Xpediter is not active on
the terminal being used.

1. On a blank CICS screen, type XPND and press Enter. A message will be displayed
saying either Xpediter is not active or it has been terminated.
2. On a blank CICS screen, type XASM and press Enter. The Demonstration Transaction
screen shown in Figure 9-1 will be displayed.

Figure 9-1. Demonstration Transaction Screen

XASM _____ - ENTER EMPLOYEE NUMBER C123



*** COMPUWARE CORPORATION ***
DEMONSTRATION TRANSACTION

ENTER DESIRED EMPLOYEE ABOVE:
00001 - CAUSES ASRA ABEND
00002 - AEIM ABEND
00003 - AEIP ABEND
00999 - ENDS NORMALLY

3. To cause an ASRA abend, type 00001 and press Enter. The Automatic Trap Activation
screen (Figure 9-2 on page 9-2) will be displayed. Pressing Clear will allow the
transaction abend to occur, while pressing Enter will display the appropriate
Xpediter screen for debugging the transaction.
9-2 Xpediter/CICS Assembler User Guide

Figure 9-2. Automatic Trap Activation Screen

-------------------------- AUTOMATIC TRAP ACTIVATION ----------------------C123


COMMAND ===>
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22




* * * XPEDITER/CICS AUTOMATIC TRAP ACTIVATION - BULLETIN * * *

AN ABEND HAS BEEN AUTOMATICALLY TRAPPED AT THIS TERMINAL

PRESS THE ENTER KEY TO CONTINUE DEBUGGING THIS TRANSACTION

OR PRESS THE CLEAR KEY TO ABEND THE TRANSACTION


This portion of the screen can be set up

to present customer-specific information

using global parameters ATAUSER1, ATAUSER2, and ATAUSER3.


FOR ADDITIONAL INFORMATION TYPE HELP.

4. Press Enter. The Source Listing screen (2.L) will be displayed with the source of
program CWDEMASM positioned to the instruction at which the abend occurred.

At this point, the user would debug the abending transaction as described in “Testing
without Breakpoints” on page 3-1.
10-1

Chapter 10.
Setting Up a Profile Chap 10

Xpediter/CICS allows you to have an individual user profile to customize your debugging
session for your needs and preferences. A profile is a set of default values that you have
specified and stored for your own use. This chapter discusses how to set up your own
profile.

When you use Xpediter/CICS, the system will recognize your userID and will call up your
profile. Then when you work with fields and actions that have defaults, Xpediter/CICS
will use defaults from your profile instead of those furnished by Xpediter itself.

1. Start Xpediter/CICS by entering XPED on a blank CICS screen.


2. To access the Session Profile Menu (0), type 0 in the COMMAND field of the Primary
Menu.
3. Press Enter to display the Session Profile Menu (0) as shown in Figure 10-1.

Note: Menu option 6 SCRIPT DSN is not displayed if global parameter XDSCRPT is set to
NO. The default is YES.

Figure 10-1. Session Profile Menu (0)

------------------- XPEDITER/CICS - SESSION PROFILE MENU (0) --------------C123


COMMAND ===>
MODULE: CSECT:


1 DEFAULTS - Set profile default values
2 KEYS - Set profile PF key default values
3 TRANSLATE TABLE - Set profile Output Translate Table values
4 LOAD PROFILE - Load default values from another profile
5 SAVE PROFILE - Save profile default values immediately
6 SCRIPT DSN - Script Dataset allocation values

Changing Profile Defaults


1. To access the Set Profile Defaults screen (0.1), type =0.1 in the COMMAND field of
any Xpediter/CICS screen.
2. Press Enter to display the Set Profile Defaults screen (0.1) (Figure 10-2). The Set
Profile Defaults screen (0.1) controls environmental features, such as scroll values
and the type of information that Xpediter/CICS displays on the bottom of the screen.
This is a two-page screen. The second page is accessed by scrolling forward (PF8)
(Figure 10-3).

Note: Certain settings may be overridden or non-applicable when using Xpediter in one
of the three restricted modes. For more information, see the Xpediter/CICS
Reference Manual.
10-2 Xpediter/CICS Assembler User Guide

Figure 10-2. Set Profile Defaults Screen 1

------------------ XPEDITER/CICS - SET PROFILE DEFAULTS (0.1) -------------C123


COMMAND ===> SCROLL ===> CSR 
MODULE: CSECT: 

PROFILE ===> ABCDEFG Current profile name 
DESCRIPTION ==> 

DEBUGGING OPTIONS: 
FOOT ===> OFF (ANALYZE/DATA/KEYS/MENU/REGS/FLOAT/SOURCE/STATUS/OFF) 
DELAY ===> 0 (0-20) Set default wait intervals for stepping 
TRACE ===> OFF (ON/OFF) Trace program execution in the background 
PROTECT ===> OFF (ON/OFF) Intercept all storage violations 
MAXSTEP ===> 20 (1-99) Set default maximum value for execution 
REGISTERS ===> 64 (32/64) Register format, if z/Architecture active 

TRAP OPTIONS: 
TRAP ===> ON (ON/OFF) Intercept all abends 
SAVE TRAPS ===> ON (ON/OFF) Save traps automatically at session end 
LOAD TRAPS ===> OFF (ON/OFF) Load saved traps at session start 

SOURCE OPTIONS: 
SOURCE ===> ON (ON/OFF) Show source display at entry 
JUSTIFY ===> ON (ON/OFF) Display the source segment of listing 
OPTWARN ===> ON (ON/OFF) Program optimized warning message 

Figure 10-3. Set Profile Defaults Screen 2

------------------ XPEDITER/CICS - SET PROFILE DEFAULTS (0.1) -------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:

KEEP OPTIONS:
KEEP ===> 5 (0/3-11/OFF) Open/close the KEEP window
AUTOKEEP ===> ON (ON/OFF) Show automatic keeps
IKEEP ===> ON (ON/OFF) Intellikeeps (Intelligent Autokeeps)
WIDEHEX ===> NO (YES/NO) Use entire lines to show HEX data

TERMINAL OPTIONS:
ALT ===> OFF (ON/OFF) Set alternate screen size
OPT ===> ON (ON/OFF) Enable 3270 data stream optimizer
ALARM ===> ON (ON/OFF) Enable terminal alarm at error
DELIM ===> ; (;/delim) Command Delimiter (Default: semi-colon)
CMDSIZE ===> 1 (1/2/3) Number of COMMAND input lines
TRANSLATE ===> OFF (ON/OFF) Use profile-level output translate table

For the 1st CSECT entry below, specify ALL or NONE. Otherwise, enter all
csect-names (max 6) that are to be automatically selected.
CSECT 1 ===> NONE CSECT 2 ===> ________________
CSECT 3 ===> ________________ CSECT 4 ===> ________________
CSECT 5 ===> ________________ CSECT 6 ===> ________________
***END***

3. To change a default option, overtype the current value with the new value in the
appropriate field.
4. Press Enter. The Set Profile Defaults screen (0.1) is updated to show the new value.

Changing PF Key Settings


You can change the PF key functions and labels to suit your needs.

1. To access the PF key setting screen (0.2), type =0.2 in the COMMAND field of any
Xpediter/CICS screen.
2. Press Enter to display the Primary PF Key Settings screen (0.2) (Figure 10-4). On this
screen you can modify settings for PF1 through PF12.
Setting Up a Profile 10-3

Figure 10-4. Primary PF Key Settings Screen (0.2)

---------------- XPEDITER/CICS - PRIMARY PF KEY SETTINGS (0.2) ------------C123


COMMAND ===>
MODULE: CSECT:

VALUE LABEL
PF1 ====> HELP ====> HELP
PF2 ====> RUNTO CSR ====> RUNTO
PF3 ====> END ====> END
PF4 ====> =X ====> EXIT
PF5 ====> RFIND ====> RFIND
PF6 ====> LOCATE * ====> LOCATE *
PF7 ====> UP ====> UP
PF8 ====> DOWN ====> DOWN
PF9 ====> GO 1 ====> GO 1
PF10 ====> LEFT ====> LEFT
PF11 ====> RIGHT ====> RIGHT
PF12 ====> GO ====> GO

Press ENTER to display alternate keys. Enter END command to exit.

3. Press Enter to update PF1 through PF12 and display PF13 through PF24. The
Alternate PF Key Settings screen (0.2) appears as shown in Figure 10-5. On this screen
you can modify settings for PF13 through PF24.
4. Press Enter to update PF13 through PF24 and redisplay the Primary PF Key Settings
screen (0.2).
5. To change the function of PF9, type GO 5 in the VALUE field next to PF9.
6. To change the label for PF9, type GO 5 in the LABEL field next to PF9. Press Enter.

Figure 10-5. Alternate PF Key Settings Screen (0.2)

--------------- XPEDITER/CICS - ALTERNATE PF KEY SETTINGS (0.2) -----------C123


COMMAND ===>
MODULE: CSECT:

VALUE LABEL
PF13 ====> MENU ====> MENU
PF14 ====> MEMORY ====> MEMORY
PF15 ====> SELECT ====> SELECT
PF16 ====> WS ====> WS
PF17 ====> =2.4 ====> TRACE
PF18 ====> =2.8 ====> LAST3270
PF19 ====> UP MAX ====> UP MAX
PF20 ====> DOWN MAX ====> DOWN MAX
PF21 ====> FILE ====> FILE
PF22 ====> DLEFT ====> DLEFT
PF23 ====> DRIGHT ====> DRIGHT
PF24 ====> RETRIEVE ====> RETRIEVE

Press ENTER to display primary keys. Enter END command to exit.

The default PF key values can also be changed using the KEYS primary command from
any screen.

Note: The values in the LABEL column also appear on the PF key buttons displayed
when using Xpediter’s 3270 Web Bridge support.

Changing Output Translate Table Values


The Output Translate Table can be used to allow the display of non-English characters
when your terminal's codepage is not supported by the Xpediter/CICS global NLS
parameter. It is also useful when there is a mismatch between a listing's codepage and
10-4 Xpediter/CICS Assembler User Guide

your terminal codepage. The following example shows how C-language programmers can
display open and close brackets within a listing that was compiled with codepage 1047,
when their terminal codepage is 037. We will change the listing's bracket positions in
this table (x'AD' and x'BD' for IBM-1047 codepage) to the bracket values of your
terminal's codepage (x'BA' and x'BB', for IBM-037 codepage, respectively).

1. Start with a display of our C-language demo program CWDEMC on the 2.L screen.
Type UP MAX on the command line and press Enter. Type FIND eibtime on the
command line, and press Enter. Eibtime has left and right brackets on it. Note that
those brackets don't display as brackets on your terminal.

Figure 10-6. Xpediter/CICS - Source Listing Screen (2.L)

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR 
MODULE: CWDEMC CSECT: CWDEMC COMPILED: 11 OCT 2007 - 16:33:29 
------ --------------------------------------------------------------------->
000063 | typedef struct { 
000064 | unsigned char eibtime Ý4¨ ; 
000065 | unsigned char eibdate Ý4¨ ; 
000066 | unsigned char eibtrnid Ý4¨ ; 
000067 | unsigned char eibtaskn Ý4¨ ; 
000068 | unsigned char eibtrmid Ý4¨ ; 
000069 | signed short int eibfil01 ; 
000070 | signed short int eibcposn ; 
000071 | signed short int eibcalen ; 
000072 | unsigned char eibaid ; 
000073 | unsigned char eibfn Ý2¨ ; 
000074 | unsigned char eibrcode Ý6¨ ; 
000075 | unsigned char eibds Ý8¨ ; 
000076 | unsigned char eibreqid Ý8¨ ; 
000077 | unsigned char eibrsrce Ý8¨ ; 
------------------------------- P F K E Y S -------------------------------
F1 =HELP F2 =RUNTO F3 =END F4 =EXIT F5 =RFIND F6 =LOCATE * 
F7 =UP F8 =DOWN F9 =GO 1 F10=LEFT F11=RIGHT F12=GO 
F13=MENU F14=MEMORY F15=SELECT F16=WS F17=TRACE F18=LAST3270 
F19=UP MAX F20=DOWN MAX F21=FILE F22=DLEFT F23=DRIGHT F24=RETRIEVE 

2. Type =0.3 on the command line to go to the Output Translate Table. Go to the "AD"
vertical hex spot found on the X80-XBF line, overtype the A (found on the top line)
with a B, and the D (on the bottom line) with an A and press Enter. You have now
replaced the X'AD' with X'BA'.
3. Go to the "BD" vertical hex spot also found on the X80-XBF line and leave the B (top
line) as is, and overtype the D (bottom line) with a B and press Enter. You have now
replaced the X'BD' with X'BB'.
Setting Up a Profile 10-5

Figure 10-7. Xpediter/CICS - Output Translate Table Screen (0.3) after changing X'AD' and X'BD'

----------------- XPEDITER/CICS - OUTPUT TRANSLATE TABLE (0.3) ------------C123


COMMAND ===> 
MODULE: CWDEMC CSECT: CWDEMC COMPILED: 11 OCT 2007 - 16:33:29 

................ ................ ................ ................ 
X00 - X3F 4444444444444444 4444444444444444 4444444444444444 4444444444444444 
BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB 

âäàáãåçñ¢.<(+| &éêëèíîïìß!$*);¬ -/ÂÄÀÁÃÅÇѦ,%_>? øÉÊËÈÍÎÏÌ`:#@'=" 
X40 - X7F 4444444444444444 5555555555555555 6666666666666666 7777777777777777 
0123456789ABCDEF 0123456789ABCDEF 0123456789ABCDEF 0123456789ABCDEF 

Ruler: 0...4...8...C... 0...4...8...C... 0...4...8...C... 0...4...8...C... 

Øabcdefghi«»ðýþ± °jklmnopqrªºæ¸Æ¤ μ~stuvwxyz¡¿Ð[Þ® ^£¥·©§¶¼½¾[]¯]´× 
X80 - XBF 8888888888888888 9999999999999999 AAAAAAAAAAAAABAA BBBBBBBBBBBBBBBB 
0123456789ABCDEF 0123456789ABCDEF 0123456789ABCAEF 0123456789ABCBEF 

{ABCDEFGHI-ôöòóõ }JKLMNOPQR¹ûüùúÿ \÷STUVWXYZ²ÔÖÒÓÕ 0123456789³ÛÜÙÚ. 
XC0 - XFF CCCCCCCCCCCCCCCC DDDDDDDDDDDDDDDD EEEEEEEEEEEEEEEE FFFFFFFFFFFFFFF4 
0123456789ABCDEF 0123456789ABCDEF 0123456789ABCDEF 0123456789ABCDEB 

4. Return to the Source Listing screen (2.L) to see your changes. If you aren't still
positioned on the eibtime field, repeat the UP MAX and FIND eibtime commands.
You should now see the brackets display as brackets.

Figure 10-8. Xpediter/CICS - Source Listing Screen (2.L) with display brackets

--------------------- XPEDITER/CICS - SOURCE LISTING (2.L) ----------------C123


COMMAND ===> SCROLL ===> CSR 
MODULE: CWDEMC CSECT: CWDEMC COMPILED: 11 OCT 2007 - 16:33:29 
------ --------------------------------------------------------------------->
000063 | typedef struct { 
000064 | unsigned char eibtime [4] ; 
000065 | unsigned char eibdate [4] ; 
000066 | unsigned char eibtrnid [4] ; 
000067 | unsigned char eibtaskn [4] ; 
000068 | unsigned char eibtrmid [4] ; 
000069 | signed short int eibfil01 ; 
000070 | signed short int eibcposn ; 
000071 | signed short int eibcalen ; 
000072 | unsigned char eibaid ; 
000073 | unsigned char eibfn [2] ; 
000074 | unsigned char eibrcode [6] ; 
000075 | unsigned char eibds [8] ; 
000076 | unsigned char eibreqid [8] ; 
000077 | unsigned char eibrsrce [8] ; 
------------------------------- P F K E Y S -------------------------------
F1 =HELP F2 =RUNTO F3 =END F4 =EXIT F5 =RFIND F6 =LOCATE * 
F7 =UP F8 =DOWN F9 =GO 1 F10=LEFT F11=RIGHT F12=GO 
F13=MENU F14=MEMORY F15=SELECT F16=WS F17=TRACE F18=LAST3270 
F19=UP MAX F20=DOWN MAX F21=FILE F22=DLEFT F23=DRIGHT F24=RETRIEVE 

Loading a Profile
Once a profile is created, it can be loaded whenever XPED is entered. To load a profile,
enter XPED P = profile from a blank CICS screen, where profile equals the profile name.
For example, to load ALTKEYS, enter XPED P=ALTKEYS.

An alternate profile can be loaded at any time by accessing the Load Profile screen (0.4)
(Figure 10-9).
10-6 Xpediter/CICS Assembler User Guide

The current profile name can be changed via the SELECT line command on the Load
Profile (0.4) screen or by accessing the Set Profile Defaults screen (0.1) and over-typing
the profile name.

Note: If user ID is used to sign onto the CICS region, a profile for the user ID is
automatically created. If the P= option for specifying a profile is not used when
the Xpediter/CICS session is initiated, the profile for the user ID is automatically
loaded and used.

Figure 10-9. Load Profile Screen (0.4)

---------------------- XPEDITER/CICS - LOAD PROFILE (0.4) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
ENTRY 000001
CURRENT PROFILE: AJMTRACE.ACMEJET0 DISPLAY MASK ==> ******** ACMEJET0
LINE COMMANDS: S (Select) C (Copy) D (Delete) R (Rename)

CMD NAME OWNER NEWNAME DESCRIPTION
----------------------------------------------------------------------------
_ AFHHOS0 ACMEJET0 ________ ____________________________________________
_ AJMCSECT ACMEJET0 ________ Profile 1
_ AJMNONE ACMEJET0 ________ Profile 2
_ AJMTRACE ACMEJET0 ________ Profile 3
_ AUTOSEL ACMEJET0 ________ ____________________________________________
**END**

Saving Profile Defaults


1. To save the new profile, type =0.5 in the COMMAND field and press Enter to display
the Save Profile screen (0.5) (Figure 10-10).

Figure 10-10. Save Profile Screen (0.5)

---------------------- XPEDITER/CICS - SAVE PROFILE (0.5) -----------------C123


COMMAND ===>
MODULE: CSECT:

SAVE DEFAULT VALUES TO PROFILE ===>


To save the current profile, specify the profile name and press ENTER.

2. Type ALTKEYS (or any new profile name) in the PROFILE NAME field.
3. Press Enter. Xpediter/CICS displays the message:

*********** PROFILE HAS BEEN UPDATED ***********

next to the MODULE field to show that the new profile has been saved.
11-1

Chapter 11.
Accessing DL/1 Databases Chap 11

This chapter discusses how to use the Xpediter/CICS File Utility to access and modify IMS
databases defined to your CICS region and/or the DBCTL region to which your CICS
region is attached.

Note: A sample Compuware database was used to generate the screens shown in this
chapter. Since the database you access will be different, your screens will vary
from those shown. Use this chapter simply as a model of how to access your
database.

Note: The demonstrations in this chapter should be performed in Xpediter’s standard


operating mode — not one of the three restricted modes. For more information,
see the Xpediter/CICS Reference Manual.

Selecting PSBs and PCBs


1. From a blank CICS screen, type XPED 5.4 and press Enter to display the DL/1
Database Menu (5.4) as shown in Figure 11-1.
2. Type 1 in the COMMAND field and press Enter to display the DL/1 PSB List screen
(Figure 11-2), which lists the PSBs defined for use in this CICS region and the DBCTL
region to which your CICS region is attached.
Xpediter/CICS always presents a list of PSBs from which you can select, so you no
longer have to supply complicated syntax to access the PSB. You just select the PSB
that you want to work with.

Figure 11-1. DL/1 Database Menu (5.4)

------------------- XPEDITER/CICS - DL/1 DATABASE MENU (5.4) --------------C123


COMMAND ===>
MODULE: CSECT:


1 PSB LIST - List all PSBs defined to CICS and/or DBCTL
2 PCB LIST - List all PCBs defined in a PSB
3 SEGMENT LIST - List all segments accessible by a PCB
4 EDIT - Edit a single segment

Note that remote PSBs are shown first, listed with the remote system ID and the
remote PSB name. Those remote PSBs are display-only and cannot be accessed from
the File Utility. They are followed by DBCTL PSBs.
11-2 Xpediter/CICS Assembler User Guide

Figure 11-2. DL/1 PSB List Screen (5.4.1)

-------------------- XPEDITER/CICS - DL/1 PSB LIST (5.4.1) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
DBCTL STATUS: CONNECTED ID: R710

REMOTE
SEL PSBNAME SYSID PSBNAME TYPE STATUS
----------------------------------------------------------------------------
PSBTEST C024 PSBREMOT REMOTE
_ DFHSAM04 DBCTL
AABMP001 DBCTL PSB STOPPED
_ AABMP002 DBCTL
_ AABMP003 DBCTL
_ AABMP004 DBCTL
_ ADSIM001 DBCTL
ADSIM002 DBCTL PSB INIT. FAILED
ADSIM003 DBCTL PSB INIT. FAILED

3. Type S in the SEL field next to the desired PSB name and press Enter to display a list
of PCBs in the selected PSB. The DL/1 PCB List screen (5.4.2) (Figure 11-3) appears.

Figure 11-3. DL/1 PCB List Screen (5.4.2)

-------------------- XPEDITER/CICS - DL/1 PCB LIST (5.4.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
DBCTL STATUS: CONNECTED ID: R710

PSBNAME: DFHSAM04 (DBCTL)

SEL PCB# DBD
----------------------
_ 1 DI21PART
**END**

A database description (DBD) is associated with a PCB and assigned a number which
is displayed prior to the DBD name on this screen. This number is used in place of
the DBD name, because multiple PCBs can access the same DBD using the same or
slightly different views of the database. The PCB list is displayed in the order in
which the PCBs have been defined in the PSB. You can scroll through this screen (UP,
DOWN, TOP, BOTTOM), or you can position the cursor to a particular PCB using the
LOCATE command followed by the DBD name.

Selecting Segments from the PCB


1. Type an S next to the selected PCB on the DL/1 PCB List screen, and press Enter to
display the DL/1 Segment List screen (5.4.3) (Figure 11-4).
Accessing DL/1 Databases 11-3

Figure 11-4. DL/1 Segment List Screen (5.4.3)

------------------ XPEDITER/CICS - DL/1 SEGMENT LIST (5.4.3) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
DBCTL STATUS: CONNECTED ID: R710

PSBNAME: DFHSAM04 (DBCTL) PCB#: 01 DBD: DI21PART

SEL LEVEL SEGMENT NAME
--- ---------------- ------------------------
_ 01 PARTROOT
_ 02 STANINFO
_ 02 STOKSTAT
_ 03 CYCCOUNT
_ 03 BACKORDR
**END**

This screen displays each segment that can be accessed via the selected PCB, along
with the associated level number for that segment. Each level in the hierarchy is
indented one position from the previous higher level to provide a hierarchical view
of the database.
The P line command highlights the hierarchical path required to reach a specific
segment.
2. Type a P command in the SEL field next to the lowest level segment to be accessed.
Press Enter to highlight the path indicating how the segment must be accessed
within the hierarchy.

Note: The PSBNAME and PCB# fields on this screen can be used to directly access a
segment list by typing the PSBNAME with a PCB number. Xpediter/CICS
checks the PSB and PCB number and returns an error message when they are
invalid.

3. Type an S in the SEL field next to a segment in this list and press Enter to display the
Edit DL/1 Segment screen (5.4.4) shown in Figure 11-5.
4. Type SHOW SSA in the COMMAND field and press Enter. Xpediter/CICS creates a
skeleton segment search argument (SSA).

Figure 11-5. Edit DL/1 Segment Screen (5.4.4)

------------------ XPEDITER/CICS - EDIT DL/1 SEGMENT (5.4.4) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
DBCTL STATUS: CONNECTED ID: R710

COMMANDS: PCB
SHOW SSA/DATA/KEYS HEX OFF/ON/DUMP INSERT REM END/TERM=COMMIT XFER=CANCEL
PSB NAME: DFHSAM04 (DBCTL) PCB#: 01 DBD: DI21PART RECLN: 00000 MAX RECLN: 00000
DEC-OFFSET: 000000 ADD-OFFSET: ______ RECFM: ** PSB IS NOT SCHEDULED **
DATABASE STAT PROC SEGMENT KFD ---------------KEY FEEDBACK--------------
NAME LV CODE OPTS NAME LEN **** NO PCB AVAILABLE ****


SSA 01 OF 01 --------------------SEARCH KEY------------------
LV SEG NAME CC Q SEGFLD OP ----+---10----+---20----+---30----+---40----+-->
01 PARTROOT *--- ( PARTKEY = .................)
000000000000000005
00000000000000000D

** **END**

This screen is used to perform DL/1 calls to the database. Xpediter/CICS uses
standard DL/1 notation rules to perform calls. READ and WRITE commands are not
used. Xpediter/CICS can build skeleton SSAs to access a segment or rebuild complete
11-4 Xpediter/CICS Assembler User Guide

SSAs displaying the path to the segment. You can perform sequential and random
calls to a database using PCB and TERM calls. A PSB holds the position in the
database for up to two minutes. That time is the default value of the global parameter
PSBWAIT and can be changed by specifying another value between 1 and 59.
The screen also shows the valid commands that are specified in the PCB definition.
The commands indicate the functions that can be used with DL/1 segments, I/O area
manipulation, and screen display. If NONE shows in the VALID COMMANDS area,
either Xpediter/CICS cannot determine the valid DL/1 commands or you are not
authorized to perform functions on this screen.
In this example, no PSB has been scheduled. The next example shows how to
schedule a PSB and retrieve a DL/1 segment.

Retrieving a DL/1 Segment


A qualification statement provides DL/1 with information about a specific segment
occurrence. You provide DL/1 with the name of a field in the segment and a value for the
specific field. The field and value are connected by a relational operator (OP) that tells
DL/1 how to compare the two values.

1. Type a greater-than symbol (>) in the OP field to the right of the equal sign (=). Press
Enter to update the OP field. This tells Xpediter/CICS to search for a segment with a
value in PARTKEY greater than or equal to low values, such as the first segment in the
database (Figure 11-6).

Figure 11-6. Modifying the SSA on the Edit DL/1 Segment Screen (5.4.4)

------------------ XPEDITER/CICS - EDIT DL/1 SEGMENT (5.4.4) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
DBCTL STATUS: CONNECTED ID: R710

COMMANDS: PCB
SHOW SSA/DATA/KEYS HEX OFF/ON/DUMP INSERT REM END/TERM=COMMIT XFER=CANCEL
PSB NAME: DFHSAM04 (DBCTL) PCB#: 01 DBD: DI21PART RECLN: 00000 MAX RECLN: 00000
DEC-OFFSET: 000000 ADD-OFFSET: ______ RECFM: ** PSB IS NOT SCHEDULED **
DATABASE STAT PROC SEGMENT KFD ---------------KEY FEEDBACK--------------
NAME LV CODE OPTS NAME LEN **** NO PCB AVAILABLE ****



SSA 01 OF 01 --------------------SEARCH KEY------------------
LV SEG NAME CC Q SEGFLD OP ----+---10----+---20----+---30----+---40----+-->
01 PARTROOT *--- ( PARTKEY => .................)
000000000000000005
00000000000000000D

** **END**

2. Type PCB and press Enter to schedule a PSB. Xpediter/CICS displays the message

************* PSB SCHEDULED VIA "PCB" COMMAND *************

to show that the PSB has been scheduled.


3. Type GN in the COMMAND field and press Enter to display the next segment in the
database. The Edit DL/1 Segment screen (5.4.4) appears with the PCB field area
updated for the selected segment (Figure 11-7).
Accessing DL/1 Databases 11-5

Figure 11-7. Displaying the Area on the PCB Edit DL/1 Segment Screen (5.4.4)

------------------ XPEDITER/CICS - EDIT DL/1 SEGMENT (5.4.4) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: ********************** I/O COMPLETED **********************
DBCTL STATUS: CONNECTED ID: R710

COMMANDS: TERM GU GHU GN GHN GNP GHNP ISRT REPL DLET CANCEL
SHOW SSA/DATA/KEYS HEX OFF/ON/DUMP INSERT REM END/TERM=COMMIT XFER=CANCEL
PSB NAME: DFHSAM04 (DBCTL) PCB#: 01 DBD: DI21PART RECLN: 00050 MAX RECLN: 00050
DEC-OFFSET: 000000 ADD-OFFSET: ______ RECFM: F **** PSB IS SCHEDULED ****
DATABASE STAT PROC SEGMENT KFD ---------------KEY FEEDBACK--------------
NAME LV CODE OPTS NAME LEN ----+---10----+17
DI21PART 01 A PARTROOT 00017 02AN960C10
FFCDFFFCFF4444444
02159603100000000


SSA 01 OF 01 --------------------SEARCH KEY------------------
LV SEG NAME CC Q SEGFLD OP ----+---10----+---20----+---30----+---40----+-->
01 PARTROOT *--- ( PARTKEY => .................)
000000000000000005
00000000000000000D

** **END**

The PCB field area displays data fields obtained from the PCB used in the last DL/1
call. These fields reflect the current position in the database and the status returned
by DL/1.
The DBD field identifies DI21PART as the database being accessed. The LV and 
SEGMENT NAME fields indicate the lowest segment in the last path DL/1
encountered while searching for the requested segment. The blanks in the STAT
CODE field indicate that the call was successful. If there was an error in processing,
this field would display a two-character status code, such as GB, AK or NO. In
addition, Xpediter/CICS provides extended diagnostics for many of the displayed
status codes. You can view these diagnostics by typing HELP xx in the COMMAND
field, where xx is the DL/1 status code.
The value in the PROC OPTS field indicates the type of call that can be issued by this
PCB. The A value indicates that all types of calls can be issued. A G value would
indicate “get processing” calls.
4. To display the data retrieved in this call, type SHOW DATA on the COMMAND field
and press Enter. The SSA area at the bottom of the screen is replaced by the segment
data (Figure 11-8).

Figure 11-8. Edit DL/1 Segment Screen (5.4.4) - SHOW DATA

------------------ XPEDITER/CICS - EDIT DL/1 SEGMENT (5.4.4) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
DBCTL STATUS: CONNECTED ID: R710

COMMANDS: TERM GU GHU GN GHN GNP GHNP ISRT REPL DLET CANCEL
SHOW SSA/DATA/KEYS HEX OFF/ON/DUMP INSERT REM END/TERM=COMMIT XFER=CANCEL
PSB NAME: DFHSAM04 (DBCTL) PCB#: 01 DBD: DI21PART RECLN: 00050 MAX RECLN: 00050
DEC-OFFSET: 000000 ADD-OFFSET: ______ RECFM: F **** PSB IS SCHEDULED ****
DATABASE STAT PROC SEGMENT KFD ---------------KEY FEEDBACK--------------
NAME LV CODE OPTS NAME LEN ----+---10----+17
DI21PART 01 A PARTROOT 00017 02AN960C10
FFCDFFFCFF4444444
02159603100000000
----+---10----+---20----+---30----+---40----+---50
02AN960C10 WASHER
----+---10----+---20----+---30----+---40----+---50
11-6 Xpediter/CICS Assembler User Guide

5. The segment information can be displayed in several different formats to make


editing easier. Use the HEX ON and HEX DUMP commands to format the display as
shown in Figure 11-9 and Figure 11-10. HEX OFF returns the display to character
format.

Figure 11-9. Edit DL/1 Segment Screen (5.4.4) - HEX ON

------------------ XPEDITER/CICS - EDIT DL/1 SEGMENT (5.4.4) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
DBCTL STATUS: CONNECTED ID: R710

COMMANDS: TERM GU GHU GN GHN GNP GHNP ISRT REPL DLET CANCEL
SHOW SSA/DATA/KEYS HEX OFF/ON/DUMP INSERT REM END/TERM=COMMIT XFER=CANCEL
PSB NAME: DFHSAM04 (DBCTL) PCB#: 01 DBD: DI21PART RECLN: 00050 MAX RECLN: 00050
DEC-OFFSET: 000000 ADD-OFFSET: ______ RECFM: F **** PSB IS SCHEDULED ****
DATABASE STAT PROC SEGMENT KFD ---------------KEY FEEDBACK--------------
NAME LV CODE OPTS NAME LEN ----+---10----+17
DI21PART 01 A PARTROOT 00017 02AN960C10
FFCDFFFCFF4444444
02159603100000000
----+---10----+---20----+---30----+---40----+---50
02AN960C10 WASHER
FFCDFFFCFF4444444444444444ECECCD444444444444444444
02159603100000000000000000061285900000000000000000
----+---10----+---20----+---30----+---40----+---50

6. To redisplay the original SSA, type SHOW SSA on the COMMAND line and press
Enter.

Figure 11-10. Edit DL/1 Segment Screen (5.4.4) - HEX DUMP

------------------ XPEDITER/CICS - EDIT DL/1 SEGMENT (5.4.4) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
DBCTL STATUS: CONNECTED ID: R710

COMMANDS: TERM GU GHU GN GHN GNP GHNP ISRT REPL DLET CANCEL
SHOW SSA/DATA/KEYS HEX OFF/ON/DUMP INSERT REM END/TERM=COMMIT XFER=CANCEL
PSB NAME: DFHSAM04 (DBCTL) PCB#: 01 DBD: DI21PART RECLN: 00050 MAX RECLN: 00050
DEC-OFFSET: 000000 ADD-OFFSET: ______ RECFM: F **** PSB IS SCHEDULED ****
DATABASE STAT PROC SEGMENT KFD ---------------KEY FEEDBACK--------------
NAME LV CODE OPTS NAME LEN ----+---10----+17
DI21PART 01 A PARTROOT 00017 02AN960C10
FFCDFFFCFF4444444
02159603100000000
000000 000 F0F2C1D5 F9F6F0C3 F1F04040 40404040 * 02AN960C10 *
000010 010 40404040 40404040 4040E6C1 E2C8C5D9 * WASHER *
000020 020 40404040 40404040 40404040 40404040 * *
000030 030 4040 * *
**END**

7. To update the SSA with key feedback data from the segment, type SHOW KEYS on
the COMMAND line and press Enter. This is used to update the SSA to the current
segment (Figure 11-11).
Accessing DL/1 Databases 11-7

Figure 11-11. Edit DL/1 Segment Screen (5.4.4) - SHOW KEYS

------------------ XPEDITER/CICS - EDIT DL/1 SEGMENT (5.4.4) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: ********************** I/O COMPLETED **********************
DBCTL STATUS: CONNECTED ID: R710

COMMANDS: TERM GU GHU GN GHN GNP GHNP ISRT REPL DLET CANCEL
SHOW SSA/DATA/KEYS HEX OFF/ON/DUMP INSERT REM END/TERM=COMMIT XFER=CANCEL
PSB NAME: DFHSAM04 (DBCTL) PCB#: 01 DBD: DI21PART RECLN: 00050 MAX RECLN: 00050
DEC-OFFSET: 000000 ADD-OFFSET: ______ RECFM: F **** PSB IS SCHEDULED ****
DATABASE STAT PROC SEGMENT KFD ---------------KEY FEEDBACK--------------
NAME LV CODE OPTS NAME LEN ----+---10----+17
DI21PART 01 A PARTROOT 00017 02AN960C10
FFCDFFFCFF4444444
02159603100000000
SSA 01 OF 01 --------------------SEARCH KEY------------------
LV SEG NAME CC Q SEGFLD OP ----+---10----+---20----+---30----+---40----+-->
01 PARTROOT *--- ( PARTKEY = 02AN960C10 )
FFCDFFFCFF44444445
02159603100000000D
** **END**

8. The GN (GETNEXT) command can be used to browse the database.


9. Remember to end the session as described in “Exiting Xpediter/CICS and Ending a
Debugging Session” on page 2-5.
11-8 Xpediter/CICS Assembler User Guide
12-1

Chapter 12.
Using Xpediter/CICS with DB2 Chap 12

Xpediter/CICS provides support for IBM’s DB2 relational database manager. In addition
to the extensive interactive debugging facilities available to all CICS programs, special
facilities have been created to meet the needs of the DB2 programmer.

Note: The demonstrations in this chapter should be performed in Xpediter’s standard


operating mode — not one of the three restricted modes. For more information,
see the Xpediter/CICS Reference Manual.

Using the DB2 Easy Query


Xpediter/CICS provides selection lists that specify the columns to be used, then generates
SQL calls and passes them to DB2 to execute. The DB2 File Utility in Xpediter/CICS
honors all DB2 security and referential integrity rules. You can use the DB2 file utility to
update only the tables you have authority to access.

Note: A sample Compuware database was used to generate the screens shown in this
chapter. Since the database you access will be different, your screens will vary
from those shown. Use this chapter simply as a model of how to access your
database.

In order to limit resource contention, access to the DB2 File Utility is prohibited from a
terminal that has a program in a BREAK/ABEND state.

Setting DB2 Session Default Attributes


The DB2 Setup screen lets you override default DB2 parameters established during
installation.

1. From a blank CICS screen, type XPED 5.5 and press Enter to access the DB2 Easy
Query Menu (Figure 12-1).

Figure 12-1. DB2 Easy Query Menu (5.5)

------------------ XPEDITER/CICS - DB2 EASY QUERY MENU (5.5) --------------C123


COMMAND ===>
MODULE: CSECT:


0 SETUP - Set default DB2 session attributes
1 TABLE/VIEW LIST - List all DB2 tables and views

2. Type 0 and press Enter to display the DB2 Setup screen (5.5.0) (Figure 12-2).
12-2 Xpediter/CICS Assembler User Guide

Figure 12-2. DB2 Setup Screen (5.5.0)

---------------------- XPEDITER/CICS - DB2 SETUP (5.5.0) ------------------C123


COMMAND ===>
MODULE: CSECT:


STRING DELIMITER ===> ' (' or ")
DECIMAL INDICATOR ===> . (. or ,)
NULL COLUMN DISPLAY CHARACTER ===> @
VARIABLE LENGTH COLUMN END OF STRING CHARACTER ===> |
TRUNCATE TRAILING BLANKS ===> Y
USE LOCAL/GMT WHEN INSERTING NEW COLUMN ===> LOCAL (Local/GMT)

LIST OF TABLES/VIEW LIMITS: CREATOR ===> *
TABLE/VIEW ===> *
TYPE ===> * (Table/View)
DATABASE ===> *
TABLESPACE ===> *
MAXIMUM ROWS TO SELECT ===> 250 (1 - 1000)
LOCK TABLES WHEN UPDATING ===> N (Y/N)
LOCK TABLES GLOBAL OVERRIDE ===> NO

It is unlikely that you will change the first six fields shown on this screen. The LIST
OF TABLES/VIEW LIMITS fields are used to limit the tables displayed on the DB2
Table/View List screen (5.5.1). The MAXIMUM ROWS TO SELECT field limits the
number of rows retrieved during a browse or query. This value is set during
installation and may be changed. The maximum value, which defaults to 1,000, is set
at product installation time and can’t be exceeded.
The LOCK TABLES WHEN UPDATING field places or prohibits a lock on a table
selected for update. Specifying Y means that others cannot modify the table while
you access it. If you specify N in this field, you risk losing changes, but you gain
resource savings. For this reason, the system programmer can disable the lock
capability. If the lock capability is disabled, the LOCK TABLES GLOBAL OVERRIDE
field is set to NO.
3. To change a value on this screen, type over the existing value and press Enter. If the
Xpediter/CICS profile dataset is used, the overrides are saved for future debugging
sessions.

Accessing a List of DB2 Tables


1. Type =5.5.1 in the COMMAND field of any Xpediter/CICS screen and press Enter to
transfer to the DB2 Table/View List screen (5.5.1) (Figure 12-3).
Using Xpediter/CICS with DB2 12-3

Figure 12-3. DB2 Table/View List Screen (5.5.1)

----------------- XPEDITER/CICS - DB2 TABLE/VIEW LIST (5.5.1) -------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:

ROW 177 OF 494

LIMIT LIST TO: CREATOR: * TABLE/VIEW: * TYPE: *
DATABASE: * TABLESPACE: *

LINE COMMANDS: Q (SQL Easy Query) S (Select)

CMD CREATOR TABLE/VIEW NAME TYPE DATABASE TABLESPACE
--- -------- ------------------ ----- -------- ----------
_ DSN8230 TOPTVAL TABLE DSN8D23P DSN8S23C
_ DSN8230 VACT VIEW DSN8D23A ACT
_ DSN8230 VASTRDE1 VIEW DSNDB06 SYSVIEWS
_ DSN8230 VASTRDE2 VIEW DSN8D23A DSN8S23E
_ DSN8230 VCONA VIEW DSN8D23P DSN8S23C
_ DSN8230 VDEPMG1 VIEW DSN8D23A DSN8S23D
_ DSN8230 VDEPT VIEW DSN8D23A DSN8S23D
_ DSN8230 VDSPTXT VIEW DSN8D23P DSN8S23C
_ DSN8230 VEMP VIEW DSN8D23A DSN8S23E
_ DSN8230 VEMPLP VIEW DSN8D23A DSN8S23E
_ DSN8230 VEMPPROJACT VIEW DSN8D23A EMPPROJA

The DB2 Table/View List screen (5.5.1) displays a list of DB2 tables and views you are
authorized to access. The list is in alphabetical order by creator. DB2 security limits
the list to tables and views you are allowed to access with your CICS user ID.
The list can be further restricted by entering CREATOR, DATABASE, TABLE/VIEW,
TABLESPACE, or TYPE in the LIMIT LIST TO fields. If these fields were specified on
the DB2 Setup screen (5.5.0), these values are carried forward and appear on this
screen.
There are two choices from this screen: Q to create an SQL Easy Query or S to select a
table or view on which to work.
2. Type the S line command in the CMD field next to any table and press Enter to
display the DB2 Browse Result Table screen (5.5.4) (Figure 12-4).

Figure 12-4. DB2 Browse Result Table Screen (5.5.4)

--------------- XPEDITER/CICS - DB2 BROWSE RESULT TABLE (5.5.4) -----------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: CANCEL FIND LOCATE END

CREATOR: DSN8230 TABLE: EMP ROW 1 OF 49
POSITION 1 OF 139
LINE COMMANDS: D (Delete) I (Insert) R (Replicate) S (Select)

EMPNO FIRSTNME MIDINIT LASTNAME WORKDEPT PHONENO HIREDATE JOB
* ------ ------------ ------- --------------- -------- ------- ---------- -----
_ 000010 CHRIS I HAAS A00 3978 1965-01-01 PRES
_ 000020 MICHAEL S THOMPSON B01 3476 1973-10-10 ANALY
_ 000030 SALLY b KWAN C01 4738 1975-04-05 ANALY
_ 000050 JOHN B PENDERS E01 6789 1949-08-17 ANALY
_ 000060 IRVING F STERN D11 6423 1973-09-14 ANALY
_ 000070 EVA D PULASKI D21 7831 1980-09-30 ANALY
_ 000090 EILEEN W HENDERSON E11 5498 1970-08-15 ANALY
_ 000100 THEODORE Q SPENSER E21 0972 1980-06-19 ANALY
_ 000110 VINCENZO G LUCCHESI A00 3490 1958-05-16 SALES
_ 000120 SEAN O’CONNELL A00 2167 1963-12-05 CLERK
_ 000130 DOLORES M QUINTANA C01 4578 1971-07-28 ANALY
_ 000140 HEATHER A NICHOLLS C01 1793 1976-12-15 ANALY
_ 000150 BRUCE ADAMSON D11 4510 1972-02-12 DESIG
12-4 Xpediter/CICS Assembler User Guide

This screen displays the rows in the selected table. The display is by column name,
and the rows are automatically formatted. The ROW field shows the current top row
and the number of rows in the resulting table. The total rows may be limited by the
MAXIMUM ROWS TO SELECT parameter on the DB2 Setup screen (5.5.0). The FIND
and LOCATE commands can be used to find a string or shift the display to a
particular column.

Editing a Row
1. Type S next to any row displayed on the DB2 Browse Result Table screen (5.5.4) and
press Enter. The DB2 Edit Result Table Row screen (5.5.5) appears as shown in Figure
12-5.

Figure 12-5. DB2 Edit Result Table Row Screen (5.5.5)

-------------- XPEDITER/CICS - DB2 EDIT RESULT TABLE ROW (5.5.5) ----------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: CANCEL FIND LOCATE END

CREATOR: DSN8230 TABLE: EMP ROW 1 OF 14
POSITION 1 OF 15

LINE COMMANDS: C (Composite column edit) N (Set field to NULL value)

VARLEN
COLUMN NAME ATTRIBUTES OR NULL VALUE
------------------ --------------- ------- ----+---10---15
_ EMPNO CHAR(6) 000010
_ FIRSTNME VARCHAR(12) 5 CHRIS
_ MIDINIT CHAR(1) I
_ LASTNAME VARCHAR(15) 4 HAAS
_ WORKDEPT CHAR(3) A00
_ PHONENO CHAR(4) 3978
_ HIREDATE DATE 1965-01-01
_ JOBCODE DECIMAL(3,0) 123
_ EDLEVEL SMALLINT 18
_ SEX CHAR(1) F
_ BIRTHDATE DATE 1933-08-14

This screen is used to edit data in the selected row of the DB2 result table. Data in all
columns may be updated. If you are not authorized to update a column by DB2
security, the contents of the column are protected to prevent modification.
2. You can move to a specific column by using the FIND command to position to a data
string, or LOCATE to position to a column name. Two line commands are also
available: N sets a field to null, and C transfers to the DB2 Edit Composite Column
screen (5.5.6) described in “Editing a Column” on page 12-9.
The DB2 File Utility has built-in edit functions to verify data.
3. Position the cursor to the VALUE field in a column with a DECIMAL attribute.
Overtype the displayed value, and type an additional character. In this sample, we
attempted to enter a four-character value in the JOBCODE field defined as DECIMAL
(3,0).
4. Press Enter. Xpediter/CICS displays an error message

+++++++++++ INTEGER TO DECIMAL CONVERSION ERROR +++++++++++

to show that the data was entered incorrectly.


Xpediter/CICS provides specific diagnostics for many DB2 errors.

Note: The plus signs (+++) preceding and following the message indicate that
additional detail information is available using the Help facility.
Using Xpediter/CICS with DB2 12-5

5. Press PF1 (HELP) to access the Help screen (Figure 12-6).

Figure 12-6. Help Screen for INTEGER TO DECIMAL CONVERSION ERROR Message

-------------------------- XPEDITER/CICS - HELP TEXT ----------------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: ******** HIT PF1 AGAIN FOR HELP ON USING TUTORIALS ********


MESSAGE "INTEGER TO DECIMAL CONVERSION ERROR"

An attempt to convert an integer value to decimal value would result
in a conversion error because the integer is either too small or too
large for the scale of the decimal receiving field.

Examples:


IF A is defined as DECIMAL(3,0)

A = -1000 or A = 28325 fails because the range of valid values
for A would be -999 to +999.


IF A is defined as DECIMAL(5,3)

A = -1000 or A = 28325 fails because the range of valid values
for A would be -99.999 to +99.999.

Use the information displayed on the Help screen to determine the source of the
error message.
6. Press PF3 (END) to return to the DB2 Edit Result Table Row screen (5.5.5).
7. Position the cursor over the incorrect data and fix the error. Press Enter.
8. Press PF3 (END) to return to the DB2 Browse Result Table screen (5.5.4) (Figure 12-7).
The changes you made are displayed on this screen. You can use the CANCEL
command to cancel the changes. Changes are committed when the END command is
used to exit this screen.

Figure 12-7. DB2 Browse Result Table Screen (5.5.4)

--------------- XPEDITER/CICS - DB2 BROWSE RESULT TABLE (5.5.4) -----------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: CANCEL FIND LOCATE END

CREATOR: DSN8230 TABLE: EMP ROW 1 OF 49
POSITION 1 OF 139
LINE COMMANDS: D (Delete) I (Insert) R (Replicate) S (Select)

EMPNO FIRSTNME MIDINIT LASTNAME WORKDEPT PHONENO HIREDATE JOB
* ------ ------------ ------- --------------- -------- ------- ---------- -----
_ 000010 CHRIS I HAAS A00 3978 1965-01-01 PRES
_ 000020 MICHAEL S THOMPSON B01 3476 1973-10-10 ANALY
_ 000030 SALLY b KWAN C01 4738 1975-04-05 ANALY
_ 000050 JOHN B PENDERS E01 6789 1949-08-17 ANALY
_ 000060 IRVING F STERN D11 6423 1973-09-14 ANALY
_ 000070 EVA D PULASKI D21 7831 1980-09-30 ANALY
_ 000090 EILEEN W HENDERSON E11 5498 1970-08-15 ANALY
_ 000100 THEODORE Q SPENSER E21 0972 1980-06-19 ANALY
_ 000110 VINCENZO G LUCCHESI A00 3490 1958-05-16 SALES
_ 000120 SEAN O’CONNELL A00 2167 1963-12-05 CLERK
_ 000130 DOLORES M QUINTANA C01 4578 1971-07-28 ANALY
_ 000140 HEATHER A NICHOLLS C01 1793 1976-12-15 ANALY
_ 000150 BRUCE ADAMSON D11 4510 1972-02-12 DESIG
12-6 Xpediter/CICS Assembler User Guide

Building an SQL Easy Query


1. Return to the DB2 Table/View List screen by typing =5.5.1 in any Xpediter/CICS
COMMAND field and pressing Enter.
2. Type the Q line command in the CMD field next to a table and press Enter. The DB2
Build SQL Easy Query screen (5.5.2) appears (Figure 12-8).

Figure 12-8. DB2 Build SQL Easy Query Screen (5.5.2)

--------------- XPEDITER/CICS - DB2 BUILD SQL EASY QUERY (5.5.2) ----------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: SHOW RESULT/SQL CHECK RESET END

CREATOR: DSN8230 TABLE: EMP ROW 1 OF 14
POSITION 1 OF 254

LINE COMMANDS: A (After) B (Before) M/MM (Move) S/SS (Select) X/XX (eXclude)

ORDER-BY WHERE CLAUSE
CMD COLUMN NAME ATTRIBUTES SEQ A/D VALUES AND OPERATORS
--------------------- --------------- --- --- ----+---10----+---20----+---30-->
__ EMPNO CHAR(6) __ _
__ FIRSTNME VARCHAR(12) __ _
__ MIDINIT CHAR(1) __ _
__ LASTNAME VARCHAR(15) __ _
__ WORKDEPT CHAR(3) __ _
__ PHONENO CHAR(4) __ _
__ HIREDATE DATE __ _
__ JOB CHAR(8) __ _
__ EDLEVEL SMALLINT __ _
__ SEX CHAR(1) __ _
__ BIRTHDATE DATE __ _

This ISPF-like screen lets you select the fields to be used in the SQL call. You can
select the columns to display, the left-to-right order of the columns to be displayed,
the row selection using WHERE clauses, and the sort sequence using ORDER-BY
clauses.
3. Select desired columns by typing an S to the left of each column.
4. Type a two-character number in the ORDER-BY SEQ field to designate the order in
which you would like the columns to be sorted.
5. Type A or D in the ORDER-BY A/D field to specify the ascending or descending sort
sequence for this column.
6. Type a WHERE clause in the WHERE CLAUSE field. In the example shown in Figure
12-9, we entered a clause for the HIREDATE, so only those rows with a hire date after
May 1, 1975 appear in the result table.
7. Press Enter to process the selection criteria.
Using Xpediter/CICS with DB2 12-7

Figure 12-9. DB2 Build SQL Easy Query Screen (5.5.2)

--------------- XPEDITER/CICS - DB2 BUILD SQL EASY QUERY (5.5.2) ----------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: SHOW RESULT/SQL CHECK RESET END
CREATOR: DSN8230 TABLE: EMP ROW 1 OF 14
POSITION 1 OF 254

LINE COMMANDS: A (After) B (Before) M/MM (Move) S/SS (Select) X/XX (eXclude)

ORDER-BY WHERE CLAUSE
CMD COLUMN NAME ATTRIBUTES SEQ A/D VALUES AND OPERATORS
--------------------- --------------- --- --- ----+---10----+---20----+---30-->
S_ EMPNO CHAR(6) __ _
S_ FIRSTNME VARCHAR(12) 02 A
S_ MIDINIT CHAR(1) __ _
S_ LASTNAME VARCHAR(15) 01 A
S_ WORKDEPT CHAR(3) __ _
S_ PHONENO CHAR(4) __ _
S_ HIREDATE DATE __ _ > '1975-05-01'
__ JOB CHAR(8) __ _
__ EDLEVEL SMALLINT __ _
__ SEX CHAR(1) __ _
__ BIRTHDATE DATE __ _

8. Type SHOW SQL in the COMMAND field and press Enter. Xpediter/CICS generates
an SQL call, and the DB2 Browse Generated SQL Call screen (5.5.3) (Figure 12-10)
displays the actual SQL statement.

Figure 12-10. DB2 Browse Generated SQL Call Screen (5.5.3)

------------ XPEDITER/CICS - DB2 BROWSE GENERATED SQL CALL (5.5.3) --------C123


COMMAND ===> SCROLL ===> CSR
MODULE: ****************** SQL SYNTAX IS CORRECT ******************
VALID COMMANDS: SHOW RESULT CREATE REPLACE END

ROW 1 OF 10


---------------------------------- SQL CALL -----------------------------------
SELECT DSN8230.EMP.EMPNO,DSN8230.EMP.FIRSTNME,DSN8230.EMP.
MIDINIT,DSN8230.EMP.LASTNAME,DSN8230.EMP.WORKDEPT,
DSN8230.EMP.PHONENO,DSN8230.EMP.HIREDATE

FROM DSN8230.EMP

WHERE HIREDATE > '1975-05-01'

ORDER BY DSN8230.EMP.LASTNAME,
DSN8230.EMP.FIRSTNME
************************************ BOTTOM ***********************************

You can save the SQL call in the Xpediter/CICS SQL transfer file to be printed or
included in a program. Each SQL call is stored as a single record in this VSAM file
with the name you supply as an operand on the CREATE or REPLACE command. In
this way, you can use Xpediter/CICS to generate and test SQL calls before your
program is written, then include them in your program code. For more information,
see Chapter 6, “DB2 Format Utility,” in the Xpediter/CICS Installation and Configuration
Guide.
9. Type SHOW RESULT in the COMMAND field and press Enter to see the result table
generated by this call on the DB2 Browse Result Table screen (5.5.4) (Figure 12-11).
12-8 Xpediter/CICS Assembler User Guide

Figure 12-11. DB2 Browse Result Table Screen (5.5.4)

--------------- XPEDITER/CICS - DB2 BROWSE RESULT TABLE (5.5.4) -----------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: CANCEL FIND LOCATE END

CREATOR: DSN8230 TABLE: EMP ROW 1 OF 14
POSITION 1 OF 71
LINE COMMANDS: D (Delete) I (Insert) R (Replicate) S (Select)

EMPNO FIRSTNME MIDINIT LASTNAME WORKDEPT PHONENO HIREDATE
* ------ ------------ ------- --------------- -------- ------- ----------
_ 1993-04-05
_ 51 1993-10-21
_ 000015 JOE COOL A00 7725 1993-05-12
_ 000260 SYBIL V JOHNSON D21 8953 1975-09-11
_ 000210 WILLIAM T JONES D11 0942 1979-04-11
_ 000330 WING LEE E21 2103 1976-02-23
_ 000240 SALVATORE M MARINO D21 3780 1979-12-05
_ 000140 HEATHER A NICHOLLS C01 1793 1976-12-15
_ 000290 JOHN R PARKER E11 4502 1980-05-30
_ 000270 MARIA L PEREZ D21 9001 1980-09-30
_ 000160 ELIZABETH R PIANKA D11 3782 1977-10-11
_ 000070 EVA D PULASKI D21 7831 1980-09-30
_ 000100 THEODORE Q SPENSER E21 0972 1980-06-19

This is the same screen that was discussed in “Editing a Row” on page 12-4. Rows can
be selected from this table for updating.
10. Type the R line command next to a row and press Enter to replicate this row.
11. Type the S line command next to the new row and press Enter. The DB2 Edit Result
Table Row screen (5.5.5) appears (Figure 12-12).
12. Type new information in the VALUE field of this screen and press Enter. In the
example shown here, JOE COOL will be changed to RALPH COOL.
13. The changes are updated in the new row.

Figure 12-12. DB2 Edit Result Table Row Screen (5.5.5)

-------------- XPEDITER/CICS - DB2 EDIT RESULT TABLE ROW (5.5.5) ----------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: CANCEL FIND LOCATE END

CREATOR: DSN8230 TABLE: EMP ROW 1 OF 7
POSITION 1 OF 15

LINE COMMANDS: C (Composite column edit) N (Set field to NULL value)

VARLEN
COLUMN NAME ATTRIBUTES OR NULL VALUE
------------------ --------------- ------- ----+---10---15
_ EMPNO CHAR(6) 000015
_ FIRSTNME VARCHAR(12) 12 JOE
_ MIDINIT CHAR(1)
_ LASTNAME VARCHAR(15) 15 COOL
_ WORKDEPT CHAR(3) A00
_ PHONENO CHAR(4) 7725
_ HIREDATE DATE 1993-05-12
**END**

14. Press PF3 (END) to see the DB2 Browse Result Table screen (5.5.4) Figure 12-13.
Remember that unless the CANCEL command is used, changes are committed when
you leave the DB2 Browse Result Table screen (5.5.4).
Using Xpediter/CICS with DB2 12-9

Figure 12-13. DB2 Browse Result Table Screen (5.5.4)

--------------- XPEDITER/CICS - DB2 BROWSE RESULT TABLE (5.5.4) -----------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: CANCEL FIND LOCATE END

CREATOR: DSN8230 TABLE: EMP ROW 4 OF 15
POSITION 1 OF 71
LINE COMMANDS: D (Delete) I (Insert) R (Replicate) S (Select)

EMPNO FIRSTNME MIDINIT LASTNAME WORKDEPT PHONENO HIREDATE
* ------ ------------ ------- --------------- -------- ------- ----------
_ 000015 RALPH COOL A00 7725 1993-05-12
_ 000260 SYBIL V JOHNSON D21 8953 1975-09-11
_ 000210 WILLIAM T JONES D11 0942 1979-04-11
_ 000330 WING LEE E21 2103 1976-02-23
_ 000240 SALVATORE M MARINO D21 3780 1979-12-05
_ 000140 HEATHER A NICHOLLS C01 1793 1976-12-15
_ 000290 JOHN R PARKER E11 4502 1980-05-30
_ 000270 MARIA L PEREZ D21 9001 1980-09-30
_ 000160 ELIZABETH R PIANKA D11 3782 1977-10-11
_ 000070 EVA D PULASKI D21 7831 1980-09-30
_ 000100 THEODORE Q SPENSER E21 0972 1980-06-19
_ 000170 MASATOSHI J YOSHIMURA D11 2890 1978-09-15
*********************************** BOTTOM **********************************

Editing a Column
The DB2 Edit Composite Column screen (5.5.6) (Figure 12-14) lets you edit data in a DB2
result table column. This screen is accessed by using the C line command from the DB2
Edit Result Table Row screen (5.5.5). Composite columns are defined in Xpediter/CICS as
DATE, TIME, TIMESTAMP, CHARACTER, or GRAPHIC columns that are redefined by a
user in an application program. Use this support when the 300-column limit is too
restrictive, or if you have kanji data in a column.

Figure 12-14. DB2 Edit Composite Column Screen (5.5.6)

-------------- XPEDITER/CICS - DB2 EDIT COMPOSITE COLUMN (5.5.6) ----------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: CANCEL FIND LOCATE END

CREATOR: CWX0030 TABLE: COMPOSITE_TABLE COLUMN NAME: VARCHAR_FIELD

DEC-OFFSET: 000000 ADD-OFFSET: 000000 COLUMN LENGTH: 00088


----+---10----+---20----+---30----+---40----+---50----+---60----+---70----+-->
GEORGE PDOS EQUUS ...>0591734126602D FAE8900001
----+---10----+---20----+---30----+---40----+---50----+---60----+---70----+-->

DB2 Long Identifier Considerations


IBM DB2 UDB V8 for z/OS introduced many changes to the DB2 product, including the
introduction of long identifier fields in DB2 V8 New Function Mode (NFM). The
identifier lengths that affect the Xpediter/CICS DB2 File Utility are as follows:

• The permissible length of the table creator name has increased from 8 to 128 bytes.
• The permissible length of the table/view name has increased from 18 to 128 bytes.
• The permissible length of the column name has increased from 18 to 30 bytes.

The Xpediter/CICS DB2 File Utility provides all of the functionality of the previous
releases of the DB2 File Utility, including support for DB2 and long identifiers. Because of
screen limitations, however, the maximum display sizes for the creator, table name, and
12-10 Xpediter/CICS Assembler User Guide

column name fields are limited to 8, 18, and 18 bytes respectively in Xpediter/CICS. If a
DB2 field exceeds these lengths, the field is truncated for display (only), and a plus
character “+” is appended to the right of that field. For example, a creator name of
CREATOR_NAME_IS_LONGER_THAN_V7 is truncated to 8 bytes and displayed as
CREATOR_+, a table name of TABLE_NAME_IS_LONGER_THAN_V7 is truncated to 18
bytes and displayed as TABLE_NAME_IS_LONG+, and a column name of
COLUMN_IS_LONGER_THAN_V7 is truncated to 18 bytes and displayed as
COLUMN_IS_LONGER_T+. The full length of these fields is only displayed on the DB2
BROWSE GENERATED SQL CALL (5.5.3) screen.

Following are examples of three DB2 File Utility screens showing the result of displaying
the DB2 long identifiers in the File Utility.

Figure 12-15 shows an example of the DB2 TABLE/VIEW LIST (5.5.1) screen. In the first
row of this display the long creator ABCDEF_LONG_CREATOR_TEST has been truncated
and is displayed as eight bytes ABCDEF_L and a plus sign (+) is appended to the right of
the field. Likewise the table name of LONG_TABLE_NAME_FOR__TESTING_DCLGEN has
been truncated to eighteen bytes and a plus sign appended.

Figure 12-15. DB2 Table/View List

---------------- XPEDITER/CICS - DB2 TABLE/VIEW LIST (5.5.1) -------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:

ROW 1 OF 90

LIMIT LIST TO: CREATOR: * TABLE/VIEW: * TYPE: *
DATABASE: * TABLESPACE: *
LINE COMMANDS: Q (SQL Easy Query) S (Select)

CMD CREATOR TABLE/VIEW NAME TYPE DATABASE TABLESPACE
--- -------- ------------------ ----- -------- ----------
_ ABCDEF_L+ LONG_TABLE_NAME_FO+ TABLE DBJAGTST DBJAGTST
_ ABCDEF_L+ LONG_TABLE_NAME_FO+ TABLE DBJAGTST DBJAGTST
_ ABCDEF_L+ LONG_TABLE_NAME_FO+ TABLE DBJAGTST DBJAGTST
_ ACMEJET0 AGEGROUP TABLE DJSMQTDB TSM00001
_ ACMEJET0 CITY TABLE DJSMQTDB TSM00001
_ ACMEJET0 CUSTOMER TABLE DJSMQTDB TSM00001

Typing a Q in the command field of the first row and pressing Enter causes the DB2
BUILD SQL EASY QUERY (5.5.2) screen in Figure 12-16 to be displayed. In the heading
both the CREATOR: and TABLE: data has been truncated for display and a plus sign has
been appended to the right of each field. The long column name
OBJS_RELATE_LONGER_CL_NAME has been truncated to eighteen bytes and a plus sign
has been appended to the right of the field.
Using Xpediter/CICS with DB2 12-11

Figure 12-16. DB2 Build SQL Easy Query

-------------- XPEDITER/CICS - DB2 BUILD SQL EASY QUERY (5.5.2) ----------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: SHOW RESULT/SQL CHECK RESET END

CREATOR: ABCDEF_L+ TABLE: LONG_TABLE_NAME_FO+ ROW 1 OF 8
POSITION 1 OF 254

LINE COMMANDS: A (After) B (Before) M/MM (Move) S/SS (Select) X/XX (eXclude)

ORDER-BY WHERE CLAUSE
CMD COLUMN NAME ATTRIBUTES SEQ A/D VALUES AND OPERATORS
--------------------- --------------- --- --- ----+---10----+---20----+---30->
__ OBJS_ID CHAR(8) __ _
__ OBJS_RELATE_LONGER+ CHAR(16) __ _
__ OBJS_TYPE CHAR(2) __ _
__ OBJS_DBNAME CHAR(8) __ _
__ OBJS_TSNAME CHAR(8) __ _
__ OBJS_CREATOR_LONGE+ VARCHAR(228) __ _
__ OBJS_NAME VARCHAR(128) __ _
__ OBJS_RELNAME VARCHAR(128) __ _

Entering the primary command SHOW SQL, typing an S in the command field for the
column name OBJS_RELATE_LONGER, and pressing Enter causes the DB2 BROWSE
GENERATED SQL CALL (5.5.3) screen in Figure 12-17 to be displayed. Notice on this
screen that the full lengths of the creator, table name, and column are displayed in the
generated SQL call.

Figure 12-17. DB2 Browse Generated SQL Call

----------- XPEDITER/CICS - DB2 BROWSE GENERATED SQL CALL (5.5.3) --------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: SHOW RESULT CREATE REPLACE END

ROW 1 OF 6


---------------------------------- SQL CALL -----------------------------------
SELECT ABCDEF_LONG_CREATOR_TEST.
LONG_TABLE_NAME_FOR__TESTING_DCLGEN.
OBJS_RELATE_LONGER_CL_NAME

FROM ABCDEF_LONG_CREATOR_TEST.
LONG_TABLE_NAME_FOR__TESTING_DCLGEN
************************************ BOTTOM ***********************************

Debugging DB2 Programs


This section discusses the special facilities available to DB2 programmers, including
setting breakpoints and keeps, interpreting abends and SQL codes, and accessing DB2
storage.

Setting Breakpoints in SQL Code


Your online source listing displays both commented-out SQL commands and the DB2
translated code. As a result, Xpediter/CICS lets you set or delete breakpoints in all
generated instructions. In addition, Xpediter/CICS allows you to globally set breakpoints
on all SQL calls.
12-12 Xpediter/CICS Assembler User Guide

• To set breakpoints before every SQL statement, enter BEFORE ALL SQL in the
COMMAND field and press Enter. Xpediter/CICS dynamically sets before breakpoints
on every SQL statement or call to DSNHLI.
You can also set breakpoints after EXEC SQL statements and counts of EXEC SQL
statements. Breakpoints can be set on all returning SQL calls, or counts can be set to
help in SQL analysis.
• DB2 breakpoints are further qualified by specifying an SQL call type. For example,
COUNT ALL SQL UPDATE sets counters only on EXEC SQL UPDATE calls. No other
calls are counted. Of course, you can set or delete individual breakpoints using the
BEFORE, AFTER, RUNTO, COUNT, and DELETE commands.

Setting Keeps on DB2-Specific Data


In Xpediter/CICS, the KEEP command is used to continuously view a data field on the
Source Listing screen (2.L). You can display various DB2 data items, such as working
storage items, DFHCOMM fields, indices, and DB2 fields. You can add any DB2 specific
data item, such as SQLCODE or SQLERRM, to the keep window, as long as it is defined to
your program.

To display the current SQLCODE value, enter KEEP SQLCODE in the COMMAND field.
Once displayed, you can modify data by replacing the contents of the field. This is an
excellent way to test IF logic after an SQL call.

Interpreting DSNC Abends and SQL Codes


Xpediter/CICS automatically traps all encountered abends, including DB2 DSNC abends.
Xpediter/CICS recognizes DSNC reason codes and treats them like any other abend. It
intercepts the abend before it takes place and returns control to you.

DSNC Abends
For example, if your DB2 program abends with a DSNC AEY9 abend code, Xpediter/CICS
will:

• Intercept the abend


• Format the Source Listing screen
• Point to the offending call
• Flag the abend code as an AEY9.

If CICS Abend-AID is installed, additional DB2 information is available. Typing =7.1 in


the COMMAND field and pressing Enter allows you to jump directly into CICS Abend-
AID to diagnose an AEY9 as a call to DB2 prior to activation.

DSNC abend recognition is especially useful in test regions prone to DB2 attachment-
facility errors. This Xpediter feature is designed to assist both the DBA and the DB2
application programmer.

SQL Codes
Programmers commonly complain about cryptic return codes. This is also true for DB2
SQL codes. Xpediter/CICS has SQL support within its Help facility.

Enter HELP SQLERROR, HELP SQLCODE, or HELP SQL to access timely SQL diagnostics
and warnings of the last SQL statement executed. Figure 12-18 is an example of help after
DB2 returned a 100 SQLCODE.
Using Xpediter/CICS with DB2 12-13

Figure 12-18. Help Exit Screen

-------------------------- XPEDITER/CICS - HELP EXIT ----------------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: TRICDB2T ******** HIT PF1 AGAIN FOR HELP ON USING TUTORIALS ********
DSNT404I SQLCODE = 100, NOT FOUND: ROW NOT FOUND FOR FETCH, UPDATE, OR
DELETE, OR THE RESULT OF A QUERY IS AN EMPTY TABLE
DSNT415I SQLERRP = DSNXRFCH SQL PROCEDURE DETECTING ERROR
DSNT416I SQLERRD = 110 0 0 1 0 0 SQL DIAGNOSTIC INFORMATION
DSNT416I SQLERRD = X'FFFFFF92' X'00000000' X'00000000' X'FFFFFFFF'
X'00000000' X'00000000' SQL DIAGNOSTIC INFORMATION

Accessing DB2 Storage


Xpediter/CICS provides extensive access to any CICS table or control area. These areas
are accessed in hexadecimal using the Memory Display screen (2.2), or mapped to a
DSECT of the current IBM data area description using the DSECTs screen (2.D). Both
screens allow keyword access.

Five DB2 related keywords are available for use in the TABLE/AREA field of the Memory
Display (2.2) and DSECTs (2.D) screens. These commands are useful in diagnosing DB2
programs with the following storage problems:

RCT (DB2 Resource Control Table): Identifies the plan name, thread, and TCB
information.
Since the RCT is no longer available, if RCT is specified, the CICS Resources screen
(2.R) is displayed showing information for the DB2CONN entry.
SQLCA (SQL Communications Area): Identifies the SQL return code, error
diagnostics, and warning indicators of the last SQL statement executed.
SQLDA (SQL Descriptor Area): Provides a pointer to the data received by a SELECT
statement in a dynamic SQL call.
PLIST (DB2 Parameter List): List of parameters passed to the DB2 call generated by
an EXEC SQL program statement.
CLOT (CICS Life of Task): Provides the DB2 connection authorization ID, and
various error codes associated with the task.

Note: All of the above keywords (except RCT) can only be used at a break or abend with
DB2 active.
12-14 Xpediter/CICS Assembler User Guide
13-1

Chapter 13.
Using Xpediter/CICS with MQ Chap 13

Xpediter/CICS provides support for IBM’s WebSphere MQ (formerly MQSeries) messaging


manager. In addition to the extensive interactive debugging facilities available to all
CICS programs, special facilities have been created to meet the needs of the MQ
programmer.

Note: The demonstrations in this chapter should be performed in Xpediter’s standard


operating mode — not one of the three restricted modes. For more information,
see the Xpediter/CICS Reference Manual.

Using the MQ File Utility


Xpediter/CICS provides a list of MQ queues available to the CICS system and allows you
to browse messages on local queues. You can also add and delete messages on an MQ
queue. For more information, see the descriptions of the DELETE, GETPUT, and PUT
commands in the Xpediter/CICS Reference Manual. The MQ File Utility in Xpediter/CICS
honors all MQ security rules. You can use the MQ File Utility only with the queues you
have authority to access.

Note: Messages created by a sample application were used to generate the screens shown
in this chapter. Since the data you access will be different, your screens will vary
from those shown. Use this chapter simply as a model of how to access your
queues.

Accessing a List of MQ Queues


1. From a blank CICS screen, type XPED 5.6 and press Enter to display the MQ Menu
(5.6) shown in Figure 13-1.

Figure 13-1. MQ Menu (5.6)

------------------------ XPEDITER/CICS - MQ MENU (5.6) --------------------C123


COMMAND ===>
MODULE: CSECT:


0 SETUP - Set default MQ session attributes
1 QUEUE LIST - List all MQ queues
2 BROWSE QUEUE - Browse messages in a queue
3 UPDATE QUEUE - Add or delete messages in a queue

2. Type 0 and press Enter to display the MQ Setup screen (5.6.0) shown in Figure 13-2.
13-2 Xpediter/CICS Assembler User Guide

Figure 13-2. MQ Setup Screen (5.6.0)

----------------------- XPEDITER/CICS - MQ SETUP (5.6.0) ------------------C123


COMMAND ===>
MODULE: CSECT:


LIST OF MQ QUEUES LIMITS:

MQ LIST PREFIX ===>
MQ LIST TYPE ===>
MQ LIST LIMIT ===> (1 - 99999), SPACES = LIST ALL

DYNAMIC QUEUE PREFIX ===>







------------------------------- P F K E Y S -------------------------------
F1 =HELP F2 =RUNTO F3 =END F4 =EXIT F5 =RFIND F6 =LOCATE *
F7 =UP F8 =DOWN F9 =GO 1 F10=LEFT F11=RIGHT F12=GO
F13=MENU F14=MEMORY F15=SELECT F16=WS F17=TRACE F18=LAST3270
F19=UP MAX F20=DOWN MAX F21=FILE F22=DLEFT F23=DRIGHT F24=RETRIEVE

The MQ LIST PREFIX, MQ LIST TYPE, and MQ LIST LIMIT can be customized or
established in each of these fields to limit the queues displayed on the MQ Queue List
screen (5.6.1). The DYNAMIC QUEUE PREFIX can also be entered for your session if you
need to override your site’s prefix, which is found in the Xpediter global table. Note that
the DYNAMIC QUEUE PREFIX field is case-sensitive. If the Xpediter/CICS profile dataset
is used, your overrides are saved for future debugging sessions.

3. Type 1 and press Enter to display the MQ Queue List screen (5.6.1) (Figure 13-3).

Figure 13-3. MQ Queue List Screen (5.6.1)

-------------------- XPEDITER/CICS - MQ QUEUE LIST (5.6.1) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
QUEUE TYPE: * QUEUE LIMIT: QUEUE MANAGER NAME: M530
QUEUE NAME PREFIX: *

LINE COMMAND: B (Browse) S (Select)

CMD QUEUE NAME TYPE CUR DEPTH
--- ----+---10----+---20----+---30----+---40----+--- ------- ----------
_ csq1 QLOCAL 0
_ efhrja0.test.chin.traffic QLOCAL 0
_ kevinsqueue QLOCAL 12
_ pnlkkh0.testQueue QLOCAL 0
_ pnlkkh0.testTopic QLOCAL 0
_ vp.csq4samp.batch.forward.queue QLOCAL 1
_ ASASASASPLANNING.SITE.REPORTS.RESPONSE.QUEUE01 QLOCAL 0
_ CF.TEST.QALIAS QALIAS
_ CF.TEST.QLOCAL QLOCAL 0
------------------------------- P F K E Y S -------------------------------
F1 =HELP F2 =RUNTO F3 =END F4 =EXIT F5 =RFIND F6 =LOCATE *
F7 =UP F8 =DOWN F9 =GO 1 F10=LEFT F11=RIGHT F12=GO
F13=MENU F14=MEMORY F15=SELECT F16=WS F17=TRACE F18=LAST3270
F19=UP MAX F20=DOWN MAX F21=FILE F22=DLEFT F23=DRIGHT F24=RETRIEVE

The QUEUE TYPE field, QUEUE NAME PREFIX field, and QUEUE LIMIT field are used to
limit the queues displayed on this screen.

4. To change a value on the screen, type over the existing value and press Enter. Note
that the QUEUE NAME PREFIX field is case-sensitive.
Using Xpediter/CICS with MQ 13-3

Browsing Messages on an MQ Queue


1. On the MQ Queue List screen, locate any queue you are authorized to access that has
a non-zero value in the DEPTH column. You may need to scroll to locate an
appropriate queue.
2. Type the B line command in the CMD field next to the queue and press Enter to
transfer to the Browse MQ Queue Message screen (5.6.2) shown in Figure 13-4.

Note: Browsing a message from an initiation queue may cause a trigger event to occur,
which may result in a trigger message being generated in the initiation queue.

Figure 13-4. Browse MQ Queue Message Screen (5.6.2)

--------------- XPEDITER/CICS - BROWSE MQ QUEUE MESSAGE (5.6.2) -----------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: FIRST NEXT UPDATE DELETE
TYPE : QLOCAL
QUEUE NAME : CSQ4SAMP.B2.RESPONSE DEPTH: 000000002
REPLYTOQ . :
REPLYTOQMGR: M520
PUTAPPLNAME: ACMEC123MVB2 PUTDATE: 20020703 PUTTIME: 18444269

TRIGGER TYPE: FIRST TRIGGER PRIORITY: 000000000 TRIGGER DEPTH: 000000001
TRIGGER DATA:

DEC-OFFSET: 000000 ADD-OFFSET: ______ REC-LENGTH: 001061
----+---10----+---20----+---30----+---40----+---50----+---60----+---70----+--->
CSQ4BAM .............................FIRST GALACTIC BANK ............
----+---10----+---20----+---30----+---40----+---50----+---60----+---70----+--->

The Browse MQ Queue Message screen (5.6.2) displays the first message on the selected
queue. There are two primary commands available on this screen: NEXT to browse the
next message on the queue and FIRST to reposition to the first message on the queue.
There may be two additional primary commands available on this screen: UPDATE to
transfer to the Update MQ Queue Message screen (5.6.3) and DELETE to delete the
currently accessed message.

Adding Messages on an MQ Queue


1. On the Browse MQ Queue Message screen (5.6.2), type the UPDATE primary
command and press Enter to transfer to the Update MQ Queue Message screen (5.6.3)
shown in Figure 13-5.

Figure 13-5. Update MQ Queue Message Screen (5.6.3)

--------------- XPEDITER/CICS - UPDATE MQ QUEUE MESSAGE (5.6.3) -----------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
VALID COMMANDS: DELETE PUT GETPUT DEFAULT
SHOW DATA/MQMD/MQOD/MQPMO

QUEUE NAME : CSQ4SAMP.B2.RESPONSE


DEC-OFFSET: 000000 ADD-OFFSET: ______ REC-LENGTH: 001061
----+---10----+---20----+---30----+---40----+---50----+---60----+---70----+--->
CSQ4BAM .............................FIRST GALACTIC BANK ............
----+---10----+---20----+---30----+---40----+---50----+---60----+---70----+--->

The Update MQ Queue Message screen (5.6.3) displays the same message as the
Browse MQ Queue Message screen (5.6.2).
13-4 Xpediter/CICS Assembler User Guide

Debugging MQ Programs
This section discusses the special facilities available to WebSphere MQ programmers,
including setting breakpoints and keeps and interpreting MQ completion and reason
codes.

Enhanced Traps for MQ Data


Enhanced trap support is also available for MQ. This support allows conditional traps on
data in the MQ Message Descriptor (MQMD) or MQ data area.

The traps may be defined using Xpediter’s Trap Summary screen (1.6 or 9.6), or a label
may be defined on the Define User Labels screen (1.9) or Define System Labels screen
(9.9) for use in a conditional trap, breakpoint, or skip. Please see the Xpediter/CICS
Reference Manual for more details.

Setting Breakpoints at MQ Calls


Xpediter/CICS allows you to globally set breakpoints on all MQ calls. To set breakpoints
before every call to MQ, type BEFORE ALL MQ in the COMMAND field and press Enter.
Xpediter/CICS dynamically sets before breakpoints on every call to MQ. Of course, you
can set or delete individual breakpoints using the BEFORE, AFTER, RUNTO, and DELETE
primary commands.

Setting Keeps on MQ-Specific Data


In Xpediter/CICS, the KEEP command is used to continuously view a data field on the
Source Listing screen (2.L). You can display various data items, such as working storage
items, DFHCOMM fields, and MQ fields. You can add any MQ specific data items, such as
a field within the MQMD structure, to the keep window, as long as it is defined to your
program. Once displayed, you can modify data by replacing the contents of the field.
This is an excellent way to test IF logic after an MQ call.

Interpreting MQ Completion and Reason Codes


Programmers commonly complain about cryptic return codes. Xpediter/CICS has MQ
support within its Help facility. Enter HELP MQRC to access a convenient list of MQ
completion code and reason codes.
14-1

Chapter 14.
Accessing CICS Storage Chap 14

This chapter discusses ways to access and update CICS storage, including displaying CICS
storage areas, DSECTs, and table entries. It also discusses how to chain through CICS
storage areas and review the Select Address list.

Note: The demonstrations in this chapter should be performed in Xpediter’s standard


operating mode — not one of the three restricted modes. For more information,
see the Xpediter/CICS Reference Manual.

Accessing CICS Storage Areas


1. Type XPED 2.2 on a blank CICS screen.
2. Press Enter to display the Memory Display screen (2.2) (Figure 14-1).

Figure 14-1. Displaying TCA on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
TABLE/AREA: TCA TABLE ENTRY ID: ________
ADDRESS: 37E08080 HEX OFFSET: _______________________________
USE CONTENTS: _ ADD OFFSET: _____ ECDSA

EDIT NOT ALLOWED CCSID TYPE: EBCDIC
00000000 000 37E08180 00000001 383674D0 0004F2A0 * .\a........}..2. * 37E08080
00000010 010 380A8FB0 00000000 00000000 00000000 * ...^............ * 37E08090
00000020 020 0000332C 00000000 00000000 80084ABC * ..............¢. * 37E080A0
00000030 030 00000000 00000000 008A8000 3960005C * .............-.* * 37E080B0
00000040 040 80240084 00082114 380A9878 B7856600 * ...d......q..e.. * 37E080C0
00000050 050 380A8FB0 378575FF 00000014 00004000 * ...^.e........ . * 37E080D0
00000060 060 00000000 00000000 00000000 00000000 * ................ * 37E080E0
00000070 070 00000000 00000000 00000000 00000000 * ................ * 37E080F0
00000080 080 00000000 00000000 00000000 00000000 * ................ * 37E08100
00000090 090 00000000 00000000 00000000 00000000 * ................ * 37E08110
000000A0 0A0 00000000 00000000 00000000 00000000 * ................ * 37E08120
000000B0 0B0 00000000 00000000 00000000 00000000 * ................ * 37E08130
000000C0 0C0 00000000 00000000 00000000 00000000 * ................ * 37E08140
000000D0 0D0 00000000 00102018 00000000 00000000 * ................ * 37E08150
000000E0 0E0 8004FA18 00102080 37EBD818 008A6000 * ..........Q...-. * 37E08160
000000F0 0F0 00000000 00000000 00000000 00000000 * ................ * 37E08170

The Memory Display screen (2.2) displays CICS storage areas. The task control area
(TCA) is displayed as the default area.
3. Type CSA in the TABLE/AREA field to display the common system area (CSA).
4. Press Enter to display the CSA storage area (Figure 14-2).
14-2 Xpediter/CICS Assembler User Guide

Figure 14-2. Displaying the CSA on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
TABLE/AREA: CSA TABLE ENTRY ID: ________
ADDRESS: 0004FA18 HEX OFFSET: _______________________________
USE CONTENTS: _ ADD OFFSET: _____ CDSA

EDIT NOT ALLOWED CCSID TYPE: EBCDIC
00000000 000 00000198 0004B020 3B985200 B797DD66 * ...q..^..q...p.. * 0004FA18
00000010 010 80D3E6E0 80800000 3817D030 38123DA0 * .LW\......}..... * 0004FA28
00000020 020 00000000 38119480 0000010C 00000000 * ......m......... * 0004FA38
00000030 030 B797D8AC 384B3360 3817D030 383674D0 * .pQ....-..}....} * 0004FA48
00000040 040 00054AD0 37E01080 0010020C 37E08080 * ..¢}.\.......\.. * 0004FA58
00000050 050 1033240F 3744A100 00000100 00000000 * ......~......... * 0004FA68
00000060 060 0039FD51 00000000 00090830 0000E906 * ..............Z. * 0004FA78
00000070 070 00000000 00000000 7FFFFFFF 0107087F * ........"......" * 0004FA88
00000080 080 008A8000 FFFFFFFE 00009080 B70F1F98 * ...............q * 0004FA98
00000090 090 00000225 00000000 001E001E E707E764 * ............X.X. * 0004FAA8
000000A0 0A0 B783BF04 B6F34374 B7854F64 B77FB118 * .c...3...e|..".. * 0004FAB8
000000B0 0B0 B75FEC14 00055228 37E01080 00000000 * .¬.......\...... * 0004FAC8
000000C0 0C0 0005E680 60000000 0004F2A0 00000000 * ..W.-.....2..... * 0004FAD8
000000D0 0D0 00000000 00000000 00000000 00000000 * ................ * 0004FAE8
000000E0 0E0 0000020C 000C0000 02000000 373767DC * ................ * 0004FAF8
000000F0 0F0 0000007A 37376890 0000007B 00000000 * ...:.......#.... * 0004FB08

Displaying CICS DSECTs


You may display any CICS storage area in symbolic format.

1. Type =2.D in the COMMAND field to display the CSA DSECT.


2. Press Enter to display the DSECTs screen (2.D) (Figure 14-3). The following options
are available:
– Access specific fields in the storage area by typing the field name in the LABEL
field.
– Browse the storage area by pressing PF7 and PF8 to scroll up and down.
3. Press PF8 to scroll down. The DSECTs screen (2.D) is scrolled to show the next page of
DSECT entries.

Figure 14-3. Accessing the CSA on the DSECTs Screen (2.D)

------------------------ XPEDITER/CICS - DSECTS (2.D) ---------------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
TABLE/AREA: CSA TABLE ENTRY ID: ________
LABEL: ______________________________

80050A18 DFHCSADS DSECT
80050A18 000
DFHCSABA EQU *-DFHCSADS
80050A18 000
CSAOSRSA DS XL72 00000198 0004B020 * ...q..^. *
80050A60 048
CSASOSI DS 0C
80050A60 048
CSASSI1 DS XL1 00 * . *
CSAFPURG EQU X'80'
CSAFTCAB EQU X'40'
CSASDTRN EQU X'20'
CSACSDOP EQU X'02'
CSASOSON EQU X'01'
80050A61 049 CSAKCMI DS 0C
80050A61 049 CSASSI2 DS XL1 10 * . *
CSATCPEV EQU X'01'
CSAMXTON EQU X'02'
CSATQIM EQU X'04'
CSATCPQM EQU X'08'
CSAPLTPI EQU X'10'
CSATCSCN EQU X'20'
Accessing CICS Storage 14-3

Chaining through CICS Storage Areas


There may be times when you have the need to chain through storage to track down an
abend. Xpediter/CICS provides several methods to do this online. Four methods are
described separately in this section, each of which uses the same example Memory
Display screen (2.2) shown in Figure 14-4:

• Method 1 — USE CONTENTS and ADD OFFSET fields


• Method 2 — USE CONTENTS field
• Method 3 — PF15
• Method 4 — CHAIN command
• Method 5 — Task Storage screen (2.S).

Method 1
Use the USE CONTENTS and ADD OFFSET fields of the Memory Display screen (2.2) to
specify an address area to be displayed.

1. Transfer to the Memory Display screen (2.2) by pressing PF14 (MEMORY).

Figure 14-4. Chaining Through the CSA on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
TABLE/AREA: CSA TABLE ENTRY ID: ________
ADDRESS: 0004FA18 HEX OFFSET: _______________________________
USE CONTENTS: X ADD OFFSET: 40___ CDSA

EDIT NOT ALLOWED CCSID TYPE: EBCDIC
00000000 000 00000198 0004B020 3B985200 B797DD66 * ...q..^..q...p.. * 0004FA18
00000010 010 80D3E6E0 80800000 3817D030 38123DA0 * .LW\......}..... * 0004FA28
00000020 020 00000000 38119480 0000010C 00000000 * ......m......... * 0004FA38
00000030 030 B797D8AC 384B3360 3817D030 383674D0 * .pQ....-..}....} * 0004FA48
00000040 040 00054AD0 37E01080 0010020C 37E08080 * ..¢}.\.......\.. * 0004FA58
00000050 050 1033240F 3744A100 00000100 00000000 * ......~......... * 0004FA68
00000060 060 0039FD51 00000000 00090830 0000E906 * ..............Z. * 0004FA78
00000070 070 00000000 00000000 7FFFFFFF 0107087F * ........"......" * 0004FA88
00000080 080 008A8000 FFFFFFFE 00009080 B70F1F98 * ...............q * 0004FA98
00000090 090 00000225 00000000 001E001E E707E764 * ............X.X. * 0004FAA8
000000A0 0A0 B783BF04 B6F34374 B7854F64 B77FB118 * .c...3...e|..".. * 0004FAB8
000000B0 0B0 B75FEC14 00055228 37E01080 00000000 * .¬.......\...... * 0004FAC8
000000C0 0C0 0005E680 60000000 0004F2A0 00000000 * ..W.-.....2..... * 0004FAD8
000000D0 0D0 00000000 00000000 00000000 00000000 * ................ * 0004FAE8
000000E0 0E0 0000020C 000C0000 02000000 373767DC * ................ * 0004FAF8
000000F0 0F0 0000007A 37376890 0000007B 00000000 * ...:.......#.... * 0004FB08

2. Type an X in the USE CONTENTS field and 40 in the ADD OFFSET field as shown in
Figure 14-4. The USE CONTENTS field specifies that Xpediter/CICS should use an
address from the display area to point to another area for display. The default uses
the address at offset hexadecimal 0 (meaning that there is no offset at all and that
Xpediter/CICS must use the displayed address).
The ADD OFFSET field is used to locate the address specified in the USE CONTENTS
field within the display. This specifies that Xpediter/CICS should use the address
found at offset hexadecimal 40 to locate another area, then display that area.
3. Press Enter. The storage area display is positioned at the address shown at an offset of
hexadecimal 40 from the start of the CSA.
Notice that the ADDRESS field has changed to show the new address.
14-4 Xpediter/CICS Assembler User Guide

Method 2
Use the USE CONTENTS field without the ADD OFFSET field to have Xpediter/CICS use
the first four bytes of the display as an address.

1. Type X in the USE CONTENTS field.


2. Press Enter. The Memory Display screen (2.2) displays the storage area at the address
located at hexadecimal offset 0.

Method 3
Use PF15 to select addresses.

1. Type CSA in the TABLE/AREA field and press Enter.


2. Move the cursor to the address at an offset of hexadecimal 04C on the screen.
3. Press PF15. The Memory Display screen (2.2) displays the storage area located at the
address at a hexadecimal offset of 04C.

Method 4
Use the CHAIN command to chain to the first address displayed in the storage area of the
screen. The CHAIN command works like the USE CONTENTS field described in “Method
1” on page 14-3 and “Method 2”.

Because CHAIN is a primary command, it can be assigned to a PF key. This makes


chaining a one-key function. CHAIN can also be used with an offset. For example: CHAIN
4 or CHAIN 2C.

1. Type CHAIN in the COMMAND field.


2. Press Enter. The Memory Display screen (2.2) displays the storage area at the address
located at hexadecimal offset 0.

Method 5
Since CICS control block changes have made it increasingly difficult to chain through a
task’s storage areas, Xpediter/CICS has provided a Task Storage screen (2.S) shown in
Figure 14-5 on page 14-5 that allows you to easily display the areas on a task’s USER31,
USER24, CICS31, and CICS24 DSA chains. You can request any or all of these chains and
allocated and/or freemained areas. You can then select a specific area by entering an S in
the SEL column next to the desired area. Xpediter will transfer to the Memory Display
screen (2.2 or 9.2, based on Xpediter session type). The END command (default PF3) will
return you to the list of storage areas on the Task Storage screen with the last selected
area positioned on the top line.

1. Access the Task Storage screen by entering the letter S on the Debugging Facilities
Menu (2) or by entering =2.S in the COMMAND field. You can also access this screen
as described in the section entitled “Transferring Between Screens” in Chapter 2 of
the Xpediter/CICS Reference Manual.
The Task Storage screen (Figure 14-5 on page 14-5) will be displayed with storage for
the current task (the default) showing all allocated areas on all four of the DSA
chains. You can vary the task selected and/or the combination of allocated and/or
freemained areas on the four DSA chains. Only freed areas still on the chains are
available—not all areas freed anytime during the duration of the transaction. It
should also be noted that areas on the freemained chains may occasionally be
allocated by CICS while Xpediter is processing your viewing request.
Accessing CICS Storage 14-5

Figure 14-5. Task Storage Screen (2.S)

------------------ XPEDITER/CICS - TASK STORAGE DISPLAY (2.S) -------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMASM CSECT: CWDEMASM COMPILED: 09 JUN 2005 - 11.22

TCA ADDRESS: 376F2680 TASK NUMBER: 05025
SELECT STORAGE CHAIN BELOW A - ALLOCATED F - FREEMAINED B - BOTH
_ ALL _ USER31 _ USER24 _ CICS31 _ CICS24

TYPE STORAGE ELEMENT ELEMENT
SEL ADDRESS LENGTH DATA
-------------------------------------------------------------------------------
_ U31 381085D8 000020D0 8C0020CAB9493DCA C3E6C4C5D4C1E2D4 *........CWDEMASM*
_ U31 38103E28 00000F50 8C000F48B935786A 0000000000000000 *.......¦........*
_ U31 381029F8 00000220 FC000218B7EE0DD4 C3E6C4C5D4C1E2D4 *.......MCWDEMASM*
_ U31 38100628 000003C0 8C0003B8B934143A 39572CD900000001 *...........R....*
_ U31 381037A8 00000670 8C000668BA4E504E 3810381038103810 *....[+&+........*
_ U31 38100528 000000F0 7EF24BE240000000 0000000000000000 *=2.S ...........*
_ U31 38100A98 00001F50 8C001F48B9337392 11C15E131100001D *.......k.A;.....*
_ U31 38100008 00000480 00B46EC4C6C8C5C9 E4E2404040404040 *..>DFHEIUS *
_ U24 00100008 00000190 0080019000000000 0000000000000000 *................*
_ U24 001001A8 00000120 11C15E7EF24BA200 0000000000000000 *.A;=2.s.........*
_ C31 3955A418 00000530 000062AB01000000 00000062F1020000 *............1...*
_ C31 39555D38 000000C0 00001DC000000058 00000000000033AC *...{............*
_ C31 39555AF8 00000230 7A00000000000004 0014094040404040 *:.......... *

2. Select the area you want to view by typing an S in the SEL column of the desired area
and pressing Enter. The Memory Display screen (2.2 or 9.2, based on Xpediter session
type) will be displayed. The first 16 bytes of the areas are displayed in hex and
character mode to make selection easier.
3. After viewing and/or updating an area, use the END command (default PF3) to return
to the Task Storage screen. The last area selected will be positioned on the top line.
4. You can page through the remaining areas, selecting and viewing any of interest.
Only one area can be selected at a time.
You can also use the LOCATE command with a hex address to determine whether an
address is contained in any of the areas on the selected chains. If it is, that area will
be positioned at the top of the screen, and you can select it to view the entire area.

Displaying CICS Table Entries


In this example, you will display several CICS table areas by using the TABLE ENTRY ID
field of the Storage Areas screen to access a specific table entry directly.

1. Type FCT (for file control table) in the TABLE/AREA field of the Memory Display
screen (2.2) (Figure 14-6).
2. Type DBUGEMP in the TABLE ENTRY ID field. DBUGEMP is a file used in the
Xpediter/CICS demonstration programs.
3. Press Enter to display the FCT entry for file DBUGEMP.

Note: If your file resource definition does not exist, after you type FCT in the
TABLE/AREA field, you see the message shown in Figure 14-7 on page 14-6.
14-6 Xpediter/CICS Assembler User Guide

Figure 14-6. Displaying the FCT on the Memory Display Screen (2.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
TABLE/AREA: FCT TABLE ENTRY ID: DBUGEMP
ADDRESS: 38377D98 HEX OFFSET: _______________________________
USE CONTENTS: _ ADD OFFSET: _____ ECDSA

EDIT NOT ALLOWED CCSID TYPE: EBCDIC
00000000 000 C4C2E4C7 C5D4D740 00000000 00000000 * DBUGEMP ........ * 38377D98
00000010 010 00000000 01348206 80004405 04000000 * ......b......... * 38377DA8
00000020 020 00000000 40400000 00800000 00000000 * .... .......... * 38377DB8
00000030 030 00000000 00000000 00000000 00004FB5 * ..............|. * 38377DC8
00000040 040 0000414C 00000000 00000000 00000000 * ...<............ * 38377DD8
00000050 050 00000000 C05AA9F7 DB885E04 00000000 * ....{!z7.h;..... * 38377DE8
00000060 060 38376AC0 38376AC0 381512C0 00000000 * ..¦{..¦{...{.... * 38377DF8
00000070 070 00000000 00000000 00000000 00000000 * ................ * 38377E08
00000080 080 00008004 00000000 00000000 00020002 * ................ * 38377E18
00000090 090 00000000 00000000 00000000 00000050 * ...............& * 38377E28
000000A0 0A0 00000000 00030002 3815B170 40000000 * ............ ... * 38377E38
000000B0 0B0 00000000 00000000 40404040 40404040 * ........ * 38377E48
000000C0 0C0 00000000 00000000 00000000 00000000 * ................ * 38377E58
000000D0 0D0 00000000 00000000 00000000 00000000 * ................ * 38377E68
000000E0 0E0 00000000 00000000 00000000 00000000 * ................ * 38377E78
000000F0 0F0 00000000 00000000 00000000 00000000 * ................ * 38377E88

Figure 14-7. Invalid Table Entry ID Message

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: ***************** INVALID TABLE ENTRY ID ******************
TABLE/AREA: CSA TABLE ENTRY ID: ________
ADDRESS: 0004FA18 HEX OFFSET: _______________________________
USE CONTENTS: _ ADD OFFSET: _____ CDSA

EDIT NOT ALLOWED CCSID TYPE: EBCDIC
00000000 000 00000198 0004B020 3B985200 B797DD66 * ...q..^..q...p.. * 0004FA18
00000010 010 80D3E6E0 80800000 3817D030 38123DA0 * .LW\......}..... * 0004FA28
00000020 020 00000000 38119480 0000010C 00000000 * ......m......... * 0004FA38
00000030 030 B797D8AC 384B3360 3817D030 383674D0 * .pQ....-..}....} * 0004FA48
00000040 040 00054AD0 37E01080 0010020C 37E08080 * ..¢}.\.......\.. * 0004FA58
00000050 050 1048297F 3744A100 00000100 00000000 * ..."..~......... * 0004FA68
00000060 060 003B5F21 00000000 00090830 0000E906 * ..¬...........Z. * 0004FA78
00000070 070 00000000 00000000 7FFFFFFF 0107087F * ........"......" * 0004FA88
00000080 080 008A8000 FFFFFFFE 00009080 B70F1F98 * ...............q * 0004FA98
00000090 090 00000225 00000000 001E001E E707E764 * ............X.X. * 0004FAA8
000000A0 0A0 B783BF04 B6F34374 B7854F64 B77FB118 * .c...3...e|..".. * 0004FAB8
000000B0 0B0 B75FEC14 00055228 37E01080 00000000 * .¬.......\...... * 0004FAC8
000000C0 0C0 0005E680 60000000 0004F2A0 00000000 * ..W.-.....2..... * 0004FAD8
000000D0 0D0 00000000 00000000 00000000 00000000 * ................ * 0004FAE8
000000E0 0E0 0000020C 000C0000 02000000 373767DC * ................ * 0004FAF8
000000F0 0F0 0000007A 37376890 0000007B 00000000 * ...:.......#.... * 0004FB08

Displaying Program and Transaction Resources


CICS no longer supports the use of the PCT and PPT table entry keywords. You may
access the CICS Resources screen (2.R) to view the attributes of a program or transaction.

If you do request a PCT entry for XASM, control automatically passes to the CICS
Resources screen (2.R) shown in Figure 14-8. From the CICS Resources screen (2.R), you
may view the formatted resource information for your program or transaction.
Accessing CICS Storage 14-7

Figure 14-8. CICS Resources Screen (2.R)

--------------------- XPEDITER/CICS - CICS RESOURCES (2.R) ----------------C123


COMMAND ===>
MODULE: ********* CICS RESOURCES SCREEN REPLACES PPT/PCT **********

RESOURCE TYPES: PROGram TRANsaction DB2Conn DB2Entry DB2Tran

RESOURCE TYPE: TRANSACTION RESOURCE NAME: XASM

BREXIT: RESSEC: NO
CMDSEC: NO ROUTING: STATIC
DTIMEOUT: 0 ROUTESTATUS: NOTROUTABLE
DUMPING: YES RTIMEOUT: 0
FACILITYLIKE: RUNAWAY: 20000
INDOUBT: BACKOUT RUNAWAYTYPE: SYSTEM
INDOUBTMINS: 0 SCRNSIZE: DEFAULT
INDOUBTWAIT: WAIT SHUTDOWN: DISABLED
ISOLATEST: YES STATUS: ENABLED
OTSTIMEOUT: 0 STORAGECLEAR: NO
PRIORITY: 1 TASKDATAKEY: USERKEY
PROFILE: DFHCICST TASKDATALOC: BELOW
PROGRAM: CWDEMASM TRACING: STANDARD
PURGEABILITY: NO TRANCLASS: DFHTCL00
REMOTENAME: TRPROF:
REMOTESYSTEM: TWASIZE: X'00000000'

Reviewing the Select Address List


Xpediter/CICS keeps track of storage areas that were accessed during a debugging session
by saving the address of the areas in a circular list.

1. To display the Select Address screen, position the cursor in any area of the Memory
Display screen (2.2) except the data display and press PF15. The Select Address screen
appears as shown in Figure 14-9.
This list is used to review a debugging session without having to recreate the session.
Notice that all the table areas accessed on the Memory Display screen (2.2) in the
previous sections of this chapter are listed here.

Figure 14-9. Select Address Screen

------------------------ XPEDITER/CICS - SELECT ADDRESS -------------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:

LINE COMMANDS: L (Lock) S (Select) U (Unlock)

CMD LABEL ADDRESS OFFSET AREA ENTRY ID FIRST 16 BYTES
------------------------------------------------------------------------------
_ ________ 00052080 TCA * .........M...... *
________ 0004BA00 ADDR * ................ *
_ ________ 00000000 * ................ *
_ ________ 00045570 CSA * ...Y....... .... *
_ ________ 000001E8 ADDR * ................ *
_ ________ 0AAA5490 FCT DBUGEMP * DBUGEMP ........ *

2. Type S in the CMD column next to the desired address to review any of these screens.
3. Press Enter to display the Memory Display screen (2.2) (Figure 14-10).
14-8 Xpediter/CICS Assembler User Guide

Figure 14-10. Memory Display Screen (2.2) from the Select Address Screen

--------------------- XPEDITER/CICS - MEMORY DISPLAY (2.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
TABLE/AREA: TCA TABLE ENTRY ID: ________
ADDRESS: 37E08080 HEX OFFSET: _______________________________
USE CONTENTS: _ ADD OFFSET: _____ ECDSA

EDIT NOT ALLOWED CCSID TYPE: EBCDIC
00000000 000 37E08180 00000001 383674D0 0004F2A0 * .\a........}..2. * 37E08080
00000010 010 380A8FB0 00000000 00000000 00000000 * ...^............ * 37E08090
00000020 020 0000332C 00000000 00000000 80084ABC * ..............¢. * 37E080A0
00000030 030 384B3360 0000088A 008A8000 3960005C * ...-.........-.* * 37E080B0
00000040 040 80240084 00082114 380A9878 B7856600 * ...d......q..e.. * 37E080C0
00000050 050 380A8FB0 378575FF 00000014 01024200 * ...^.e.......... * 37E080D0
00000060 060 00000040 383674D0 00000000 00000000 * ... ...}........ * 37E080E0
00000070 070 00000000 00000000 00000000 383674D0 * ...............} * 37E080F0
00000080 080 00000000 00000000 00000000 00000000 * ................ * 37E08100
00000090 090 00000000 00000000 00000000 00000000 * ................ * 37E08110
000000A0 0A0 00000000 00000000 00000000 00000000 * ................ * 37E08120
000000B0 0B0 00000000 00000000 00000000 00000000 * ................ * 37E08130
000000C0 0C0 00000000 00000000 00000000 00000000 * ................ * 37E08140
000000D0 0D0 00000000 00102018 00000000 00000000 * ................ * 37E08150
000000E0 0E0 8004FA18 00102080 37EBD818 008A6000 * ..........Q...-. * 37E08160
000000F0 0F0 00000000 00000000 00000000 00000000 * ................ * 37E08170

4. Press PF11. The next area on the select list is displayed.


The list is especially useful for checking on possible errors during a debugging
session. You can review several screens and display additional storage areas. These
new areas are also saved in the list.
Because the Select Address screen is a circular list, Xpediter/CICS removes the oldest
entries when there are more than 16 addresses in it. If you need to retain a particular
entry, use the L (Lock) line command to lock an entry on the list. Use the U (Unlock)
line command to free these entries. Type these commands under the CMD column as
shown in Figure 14-11.

Figure 14-11. Address Entries

------------------------ XPEDITER/CICS - SELECT ADDRESS -------------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:

LINE COMMANDS: L (Lock) S (Select) U (Unlock)

CMD LABEL ADDRESS OFFSET AREA ENTRY ID FIRST 16 BYTES
------------------------------------------------------------------------------
_ ________ 00052080 TCA * .........M...... *
L ________ 0004BA00 ADDR * ................ *
U ________ 00000000 * ................ *
_ ________ 00045570 CSA * ...Y....... .... *
_ ________ 000001E8 ADDR * ................ *
_ ________ 0AAA5490 FCT DBUGEMP * DBUGEMP ........ *

You can review the entire address list screen by using PF10 and PF11 to scroll through
the list, displaying the contents of memory at each of the addresses in the list. PF10
will display the previous address in the list, and PF11 will display the next address in
the list.
Remember to end the session as described in “Exiting Xpediter/CICS and Ending a
Debugging Session” on page 2-5.
15-1

Chapter 15.
Using Global Storage Protection Chap 15

This chapter discusses the global storage protection facilities of Xpediter/CICS available
through the XPSP transaction. This chapter is intended for the person responsible for
maintaining the Xpediter/CICS system at the site. The chapter shows how to set region-
wide and automatic storage protection, and monitor storage violations. It also discusses
how to define system labels and storage exceptions.

Note: The demonstrations in this chapter should be performed in Xpediter’s standard


operating mode — not one of the three restricted modes. For more information,
see the Xpediter/CICS Reference Manual.

Setting Region-Wide Storage Protection


Xpediter/CICS is designed to protect CICS regions against storage violations. You can set
storage protection for an entire region by individual program, transaction, terminal, or
any combination of these items. You can make entries to protect storage, fetch access,
shared storage, program storage, and storage by CICS command level commands — or by
combining these items.

This example demonstrates how to set storage protection for a region through XPSP.

1. Type XPSP 9.8 from a blank CICS screen and press Enter to display the Storage
Protection screen (9.8) (Figure 15-1).

Figure 15-1. Making Storage Protection Entries on the Storage Protection Screen (9.8)

------------------- XPEDITER/CICS - STORAGE PROTECTION (9.8) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
ENTRY 000000
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert) M (Move)

-----------PROTECTION OPTIONS-------
CMD TYPE TERM TRAN PROGRAM STORE FETCH SHR PGM CMD Store
-----------------------------------------------------------------------------
_ ____ ____ ____ ________ ___ ___ ___ ___ ___
_ ____ ____ ____ ________ ___ ___ ___ ___ ___
_ ____ ____ ____ ________ ___ ___ ___ ___ ___

2. Type SYST in the TYPE field. There are three types of storage protection entries:
– SYST entries created by XPSP users or during product initialization. They always
proceed other entries in the table and are always evaluated first. These entries
can only be deleted by XPSP users.
– USER entries follow SYST entries. They can be modified from either Storage
Protection screen (1.8 or 9.8).
– AUTO entries are automatically added to the table whenever automatic storage
protection is set ON and any Xpediter/CICS transaction is used. See “Setting
Automatic Storage Protection” on page 15-2 for more information.
3. Type an asterisk (*) in the TERM field to specify all terminals.
15-2 Xpediter/CICS Assembler User Guide

4. Type XA** in the TRAN field to specify any transaction that begins with the letters
XA.
5. Type CWDEMASM in the PROGRAM field.
6. Type Y in the STORE field under PROTECTION OPTIONS.
7. Press Enter to redisplay the Storage Protection screen (9.8). Xpediter/CICS uses the
default value of NO for FETCH, SHR, PGM, and CMD Store.
These entries indicate that the program CWDEMASM is prevented from attempting
to cause storage violations whenever it is invoked from any terminal with a
transaction that starts with the letters XA.

Sample Storage Protection Entries


The settings shown in Figure 15-2 can be used to ensure that all transactions are
monitored for storage violations, yet allow Xpediter/CICS users to tailor their own
storage protection. Entries are searched in the order in which they appear in the
table. This entry should be the last one in the table—all other users’ entries precede
this one.

Figure 15-2. Monitoring Transactions on the Storage Protection Screen (9.8)

------------------- XPEDITER/CICS - STORAGE PROTECTION (9.8) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert) M (Move)

-----------PROTECTION OPTIONS-------
CMD TYPE TERM TRAN PROGRAM STORE FETCH SHR PGM CMD Store
-----------------------------------------------------------------------------
_ USER **** **** ******** YES NO NO NO NO

The settings shown in Figure 15-3 turn off monitoring without destroying the
current table entries. These settings must appear first in the table.

Figure 15-3. Turning Off Monitoring on the Storage Protection Screen (9.8)

------------------- XPEDITER/CICS - STORAGE PROTECTION (9.8) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert) M (Move)

-----------PROTECTION OPTIONS-------
CMD TYPE TERM TRAN PROGRAM STORE FETCH SHR PGM CMD Store
-----------------------------------------------------------------------------
_ SYST **** **** ******** NO NO NO NO NO

Setting Automatic Storage Protection


Xpediter/CICS is shipped with the storage protection function turned OFF for all three
transactions (XPED, XPRT, and XPSP). Although these settings prevent Xpediter/CICS
from intercepting storage violations, they may be acceptable for several reasons. First, if
applications are run in test regions, the impact of storage violations is probably not as
great as in a production environment. Second, storage monitoring requires additional
system resources to inspect each instruction before it executes. Thus, in most cases, the
need for protection is less than the cost of providing protection. In these cases, storage
protection should be turned OFF.
Using Global Storage Protection 15-3

Note: If Xpediter/CICS is operating in Utilities Mode or Diagnosis/Utilities Mode, the


storage protection function is not available, regardless of global table parameter
settings or attempted user overrides. These modes are designed for use in
throughput-critical CICS regions.

Activating Test Region Storage Protection


There are times when you can’t afford to expose your test region to outages caused by
storage violations. This is the time to change the default so that storage protection is
automatically turned ON whenever a test session is started.

The PROTECT field on the Set Profile Defaults screen (0.1) controls automatic storage
protection. The SET PROTECT command can be used to change the PROTECT field
without visiting the 0.1 screen. When PROTECT is set to ON for any Xpediter/CICS
transaction, the STORE protection option is automatically provided whenever a user
enters that transaction. Additional protection options can be set by using the Storage
Protection screen (1.8 or 9.8).

The global parameter DEFPROT (default OFF,OFF,OFF) determines the initial defaults for
a new user profile. For example, setting DEFPROT to (ON,OFF,OFF) automatically sets the
PROTECT field ON if the XPED transaction is used or OFF if the XPRT or XPSP
transaction is used.

Allowing Storage Violations


Xpediter/CICS storage protection rules are very strict. Only storage that belongs to the
program can be updated. Anything else is intercepted as a violation. There are times
when an application programmer may disagree with the Xpediter/CICS assessment of
what is a violation. With the ALLOW command, you can allow the trapped violation to
occur, yet still provide protection for the rest of the test.

The ALLOWCM global parameter controls access to the ALLOW command when using
Xpediter/CICS transactions. Xpediter/CICS is shipped with ALLOW set to OFF (no) for
the XPED/XPRT transactions and ON (yes) for the XPSP transaction. Xpediter’s three-
transaction design gives you the ability to control who has access to allow storage
violations by turning ALLOWCM ON for one transaction and OFF for the others.

Note: For more information about the global parameters, refer to the Xpediter/CICS
Installation and Configuration Guide.

Defining System Labels


Defining storage exceptions is another way to allow non-destructive storage violations to
occur. Many sites have in-house or vendor-supplied programs that break the rules for
storage protection. To avoid having storage violations reported for this activity,
Xpediter/CICS provides two screens to define, label, and exempt certain areas from
storage protection. Xpediter/CICS can then monitor a program for storage violations, yet
define areas that are exempt from storage violation protection. With this facility, your
program can modify areas without Xpediter/CICS considering the modification to be a
storage violation.

The Define System Labels screen (9.9) is used to define areas to be exempted from storage
protection.

1. Type =9.9 in the COMMAND field of any screen and press Enter to display the Define
System Labels screen (9.9) (Figure 15-4).
15-4 Xpediter/CICS Assembler User Guide

In this example, assume that program CWDEMASM needs to modify the TRAN ID
field of the execute interface block (EIB). Identify and label the field as EIBTRNID to
exempt it from storage protection.
The TRAN ID field is located in the EIB. Two entries are made: one to locate the start
of the EIB (EISEIBAD), the second to locate the TRAN ID field within the EIB
(EIBTRNID).

Note: Program CWDEMASM is used here only as an example. It does not actually
update the EIB.

Figure 15-4. Define System Labels Screen (9.9)

------------------ XPEDITER/CICS - DEFINE SYSTEM LABELS (9.9) -------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:

DEFAULT BASE LABELS: CSA DCT EIS FCT MOD OFL PGM TCA TCT
ADDR PADDR PLEN INITCOMM MQMD MQDATA

USER BASE ENTRY OR + OR - USE RESULTING
DEL LABEL LABEL PGM-NAME OFFSET CONTENT LENGTH VALUE
------------------------------------------------------------------------------
_ ________ ________ ________ _________ _ ________
_ ________ ________ ________ _________ _ ________
_ ________ ________ ________ _________ _ ________

2. To locate the starting address of the EIB, type EISEIBAD in the USER LABEL field.
This defines a label for the beginning of the EIB.
3. Type EIS in the BASE LABEL field.
4. Type 8 in the + OR - OFFSET field. This value is the offset from the beginning of the
EIS where the EIB address is located.
5. Type Y in the USE CONTENT field to specify that the data located eight bytes into
the EIS is to be used as an address.
6. Type 4 in the LENGTH field to indicate the length of the area to be used.
7. Press Enter. The first entry is recorded.
8. Type MYTRANID in the USER LABEL field. This identifies the EIBTRNID.
9. Type EISEIBAD in the BASE LABEL field. This is the label defined in step 2.
10. Type 8 in the + OR - OFFSET field.
11. Type N in the USE CONTENT field to indicate that the data found at this address is
not to be used as an address.
12. Type 4 in the LENGTH field.
13. Press Enter. If the addresses can be resolved, the RESULTING VALUE field is updated
as shown in Figure 15-5. All addresses and lengths are resolved at the time they are
used.
Using Global Storage Protection 15-5

Figure 15-5. EIB Entries on Define System Labels Screen (9.9)

------------------ XPEDITER/CICS - DEFINE SYSTEM LABELS (9.9) -------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:

DEFAULT BASE LABELS: CSA DCT EIS FCT MOD OFL PGM TCA TCT
ADDR PADDR PLEN INITCOMM MQMD MQDATA

USER BASE ENTRY OR + OR - USE RESULTING
DEL LABEL LABEL PGM-NAME OFFSET CONTENT LENGTH VALUE
--- -------- -------- -------- --------- --- -------- --------
_ EISEIBAD EIS 8 Y 00000004 385000D0
_ MYTRANID EISEIBAD 8 N 00000004 385000D8
_ ________ ________ ________ _________ _ ________
_ ________ ________ ________ _________ _ ________
_ ________ ________ ________ _________ _ ________

Defining Storage Exceptions


Now that you have identified and labeled the MYTRANID field, you can make an entry to
exempt this area from storage protection. The next entry allows program CWDEMASM to
update this field.

1. Type =9.7 in the COMMAND field and press Enter to access the Storage Exceptions
screen. The following steps will create the entry seen in Figure 15-6.

Figure 15-6. Exceptions Entered on the Storage Exceptions Screen (9.7)

------------------- XPEDITER/CICS - STORAGE EXCEPTIONS (9.7) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:

ADDRESS ADDR-TO <-- ALLOW ALLOW UNPRO
DEL TERM TRAN PROGRAM FROM OR LNTH A/L STORE FETCH INSTR
----------------------------------------------------------------------------
__ **** **** CWDEMASM MYTRANID 4 L YES NO NO
002000D8 002000DB

__ ____ ____ ________ ________ ________ _ ___ ___ ___

__ ____ ____ ________ ________ ________ _ ___ ___ ___

__ ____ ____ ________ ________ ________ _ ___ ___ ___

2. Type an asterisk (*) in the TERM field to specify all terminals.


3. Type an asterisk (*) in the TRAN field to specify all transactions.
4. Type CWDEMASM in the PROGRAM field.
5. Type MYTRANID in the ADDRESS FROM field.
6. Type 4 in the ADDR-TO OR LNTH field.
7. Type L (for length) in the A/L field.
8. Type Y in the ALLOW STORE field.
9. Press Enter. The default value NO is taken for ALLOW FETCH and UNPRO INSTR.

These entries specify that whenever CWDEMASM is executed from any terminal or
transaction, it can modify the four-byte area beginning at the label EIBTRNID.

When evaluated with storage protection active, Xpediter/CICS monitors CWDEMASM for
storage violations but allows updates to the TRAN ID field.
15-6 Xpediter/CICS Assembler User Guide

Note: Entries made on the Storage Exceptions screen (9.7), the Storage Protection screen
(9.8), and the Define System Labels screen (9.9) stay in effect until they are
deleted or Xpediter is turned off.

Remember to end your session as described in “Exiting Xpediter/CICS and Ending a


Debugging Session” on page 2-5.

Monitoring Storage Violations


Xpediter/CICS can monitor storage violations in either interactive or unattended mode.
In interactive mode, the storage violation is intercepted at either the user’s terminal, or a
system or help desk terminal. The problem can be reviewed and fixed, or a dump can be
requested. In either case, the storage violation is prevented. In unattended mode, the
storage violation is intercepted and turned into a harmless abend. Information is passed
to the dump dataset with an abend code of ASRA, or to the Abend-AID for CICS Report
file with an abend code of STOR.

The following examples show how to set up interactive and unattended monitoring.

Note: Although the examples use the XCB2 COBOL demonstration transaction, the
same techniques are used to monitor storage violations in an Assembler
environment.

Interactive Monitoring
1. Type XPSP 9.6 and press Enter on a blank CICS screen to display the Trap Summary
screen (9.6) shown in Figure 15-7. This screen is used to specify the programs,
transactions, userIDs, netnames, and terminals to be monitored for abends. Entries
that have your terminal ID in the TRAP BY field will be intercepted by your terminal.
You can set traps for Web-based and other transactions using Xpediter’s enhanced
trap conditions. For more information, see the explanation of the Trap Summary
screen (9.6) in the Xpediter/CICS Reference Manual.
2. Type XCB2 in the TRAN field and press Enter to set a trap. The XCB2 transaction will
be intercepted whenever an abend occurs. See Figure 15-7. If global parameter
TRAPTRM is set to YES (the default), your terminal ID will be displayed in the TERM
field, and you must overtype it with asterisks (*).

Figure 15-7. Setting an Abend Trap on the Trap Summary Screen (9.6)

---------------------- XPEDITER/CICS - TRAP SUMMARY (9.6) -----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
MODE: TERM (IP TERM or ALL) NO IP TRAPS ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert)
M (Move) S (Save)

CMD USERID NETNAME TERM TRAN PROGRAM TRAP ABEND
IF ...................... TRAP CONDITION ....................... TRAP BY
------------------------------------------------------------------------------
_ ******** ******** **** XCB2 ******** YES
IF 0072
_ ________ ________ ____ ____ ________ ___
IF

3. To set a protection entry, type =9.8 and press Enter. The Storage Protection screen
(9.8) appears as shown in Figure 15-8.
Using Global Storage Protection 15-7

Figure 15-8. Storage Protection Screen (9.8)

------------------- XPEDITER/CICS - STORAGE PROTECTION (9.8) --------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
ENTRY 000001
LINE COMMANDS: A (After) B (Before) C (Copy) D (Delete) I (Insert) M (Move)

-----------PROTECTION OPTIONS-------
CMD TYPE TERM TRAN PROGRAM STORE FETCH SHR PGM CMD Store
-----------------------------------------------------------------------------
_ SYST **** XCB2 ******** YES NO NO NO NO
_ ____ ____ ____ ________ ___ ___ ___ ___ ___
_ ____ ____ ____ ________ ___ ___ ___ ___ ___

4. Type SYST in the TYPE field.


5. Type an asterisk (*) in the TERM field.
6. Type XCB2 in the TRAN field.
7. Type an asterisk (*) in the PROGRAM field.
8. Type YES in the PROTECT STORE field and press Enter. This entry means that any
storage violation in any program executed by transaction XCB2 will be intercepted.
9. Press Clear.
10. Using another terminal, sign on to the same CICS region.
11. On a blank CICS screen, type XCB2 and press Enter.
12. Type 00333 and press Enter. Your terminal will hang as shown in Figure 15-9.

Figure 15-9. Storage Violation on the Demonstration Transaction Screen

XCB2 00333 - ENTER EMPLOYEE NUMBER C123



*** COMPUWARE CORPORATION ***
DEMONSTRATION TRANSACTION

ENTER DESIRED EMPLOYEE ABOVE:
00001 - CAUSES ASRA ABEND
00002 - CAUSES AEIM (AND OTHER ABENDS)
00003 - CAUSES A WRITE TO TEMPORARY STORAGE
00004 - STARTS UP XCB2 AS AN ASYNCHRONOUS TASK
00005 - USED TO SHOW MULTIPLE CSECT SUPPORT
00333 - CAUSES A STORAGE VIOLATION OF A SAA
00999 - ENDS NORMALLY

Note: The Source Listing screen (2.L) may be displayed in the following step if
source support has been turned on for the XPSP transaction.

13. Return to the original terminal. The Break/Abend screen (2.1) will be displayed with
a message that a storage violation has occurred, as shown in Figure 15-10.
15-8 Xpediter/CICS Assembler User Guide

Figure 15-10. Intercepting a Storage Violation on the Break/Abend Screen (2.1)

---------------------- XPEDITER/CICS - BREAK/ABEND (2.1) ------------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CWDEMCB2 ***************** SUBSCRIPT OUT OF BOUNDS *****************
CAUSE: OVERLAPPING END STORG CHECK ZONE(PR) ABEND CODE: STOR
TRAN ID: XCB2 PARAGRAPH: 1060-INITIALIZE-STORAGE-LOOP
INTERRUPT STMT: 000559 OFFSET: 01C0A LAST CICS COMMAND:
RESUME STMT : 000559 OFFSET: 01BFA
-------------------------------------------------------------------------------
000557 MOVE +1 TO LS-SUBSCRIPT.
000558 1060-INITIALIZE-STORAGE-LOOP.
000559 MOVE 'V' TO LS-FIELD-WITH-1 (LS-SUBSCRIPT).
000560 IF LS-SUBSCRIPT > +16
000561 1 GO TO 1080-INITIALIZATION-DONE.
-------------------------------------------------------------------------------
LV ----- COBOL DATANAME KEEPS ---- -- ATTRIBUTES -- ----+---10----+---20--->
02 LS-FIELD-WITH-1 X(1) V
OCCURS 16 TIMES 1
77 LS-SUBSCRIPT S9(3) COMP-3 +017
**END**

Notice the error message on this screen indicates a STOR violation (OVERLAPPING
END STORG CHECK ZONE).
At this point, you have access to all Xpediter/CICS screens and can use them to
investigate the problem. In this example, you will end the session.
14. Type =X in the COMMAND field and press Enter. The Exit Session screen is displayed
as shown in Figure 15-11.
The ACTIVE ABEND TRAPS and WAITING TASKS fields show the number of remote
traps.

Figure 15-11. Removing Abend Trap and the Exit Session Screen (X)

----------------------- XPEDITER/CICS - EXIT SESSION (X) ------------------C123


COMMAND ===>
MODULE: CWDEMCB2 CSECT: CWDEMCB2 COMPILED: 28 MAY 2003 - 11.11.29

END SESSION: NO YES terminates the session, cleans up resources, and
frees any waiting remote tasks. NO returns to CICS
and leaves Xpediter active.

DUMP OPTION: NO YES forces a dump (or Abend-AID for CICS report) for
any active abends currently trapped by this terminal.
The site options for dump suppression have precedence.

POST SCRIPT: Script to execute at session termination.

PROGRAMS WITH BREAKS: 000
PROTECTION ENTRIES: 001
ACTIVE ABEND TRAPS: 001 (Individual trap entries set by this terminal)
WAITING TASKS: 001 (Active remote traps that have not been processed)

Press ENTER to process options.

15. Type Y in the END SESSION field and press Enter. This frees the remote terminal and
removes the trap set on the Trap Summary screen (9.6).

Unattended Monitoring
On the secondary terminal, type XCB2 and press Enter. The storage violation is
intercepted and turned into a harmless ASRA, as shown in Figure 15-12. The dump
information is stored on the dump dataset. If Abend-AID for CICS is installed, an
abend report is created with an abend code of STOR.
Using Global Storage Protection 15-9

Figure 15-12. Preventing a Storage Violation on the Demonstration Transaction Screen

XCB2 00333 - ENTER EMPLOYEE NUMBER C123



*** COMPUWARE CORPORATION ***
DEMONSTRATION TRANSACTION

ENTER DESIRED EMPLOYEE ABOVE:
00001 - CAUSES ASRA ABEND
00002 - CAUSES AEIM (AND OTHER ABENDS)
00003 - CAUSES A WRITE TO TEMPORARY STORAGE
00004 - STARTS UP XCB2 AS AN ASYNCHRONOUS TASK
00005 - USED TO SHOW MULTIPLE CSECT SUPPORT
00333 - CAUSES A STORAGE VIOLATION OF A SAA
00999 - ENDS NORMALLY









DFHAC2206 13:03:48 H01AC123 TRANSACTION XCB2 FAILED WITH ABEND ASRA. UPDATES
TO LOCAL RECOVERABLE RESOURCES BACKED OUT.

Setting Storage Protection during PLT Startup


Storage protection entries can be defined at product initialization. For information on
this procedure, refer to the Xpediter/CICS Installation and Configuration Guide.
15-10 Xpediter/CICS Assembler User Guide
16-1

Chapter 16.
Editing CICS Tables and Control Blocks Chap 16

This chapter discusses how to use the XPSP transaction to perform the following
functions:

• Access and modify CICS table entries, storage, and control blocks defined to a CICS
region.
• Use Xpediter/CICS to modify CICS tables online without taking the region down.

Note: The demonstrations in this chapter should be performed in Xpediter’s standard


operating mode — not one of the three restricted modes. For more information,
see the Xpediter/CICS Reference Manual.

Editing a CICS Table Entry


The following scenario demonstrates how to edit a CICS table entry on either the
Memory Display screen (9.2) or the DSECTs screen (9.D).

Note: This scenario applies to VTAM terminals only.

Note: Because the example removes upper case translation by overtyping a field in the
TCT, causing CICS not to recognize a lower case transaction name, you may want
to just read the example without actually replacing the value.

Editing from the Memory Display Screen


Use the Memory Display screen (9.2) to update tables in hexadecimal dump format:

1. From a blank CICS screen, type XPSP 9.2 and press Enter. The Memory Display
screen (9.2) is displayed (Figure 16-1).
16-2 Xpediter/CICS Assembler User Guide

Figure 16-1. Changing the TCT on the Memory Display Screen (9.2)

--------------------- XPEDITER/CICS - MEMORY DISPLAY (9.2) ----------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
TABLE/AREA: TCT TABLE ENTRY ID: 0751
ADDRESS: 383704D0 HEX OFFSET: +0000006B______________________
USE CONTENTS: _ ADD OFFSET: _____ ECDSA

CCSID TYPE: EBCDIC
0000006B 000 013835C5 703817E0 30000000 00381777 * ...E...\........ * 3837053B
0000007B 010 D8000000 00384B50 00000000 00000000 * Q......&........ * 3837054B
0000008B 020 00000000 00000000 00000000 00000000 * ................ * 3837055B
0000009B 030 00381720 30000205 00010000 00000000 * ................ * 3837056B
000000AB 040 00000000 00000000 00000000 00008400 * ..............d. * 3837057B
000000BB 050 00000000 05000000 06000000 00000400 * ................ * 3837058B
000000CB 060 00000000 00800000 00000000 0000C000 * ..............{. * 3837059B
000000DB 070 00000000 00000000 0C010000 00000000 * ................ * 383705AB
000000EB 080 00000000 00000000 00000000 00000000 * ................ * 383705BB
000000FB 090 00000000 00010000 00000000 00000000 * ................ * 383705CB
0000010B 0A0 00000000 00000000 00000000 00000000 * ................ * 383705DB
0000011B 0B0 00000000 00000084 00000500 08000000 * .......d........ * 383705EB
0000012B 0C0 00000000 00000000 00FFFF00 00000000 * ................ * 383705FB
0000013B 0D0 00000000 00C05E1F CAB91F9E 84000000 * .....{;.....d... * 3837060B
0000014B 0E0 00000000 00000000 00000000 00000000 * ................ * 3837061B
0000015B 0F0 00000000 00000000 00000000 00000000 * ................ * 3837062B

2. Type TCT in the TABLE/AREA field.


3. Type TCTEUCTB in the HEX OFFSET field and press Enter.
4. Look at the data display area. The upper case translation byte value is 01. To turn off
upper case translation, position the cursor to the first position displayed, change the
01 to 00, and press Enter.

Note: You may want to change the value back to 01 before ending your session.

The table has been updated, and you can now continue your test without recycling
the CICS region.

Editing from the DSECTs Screen


You can also edit table entries using the DSECTs screen (9.D). This screen provides a way
for you to display and update DSECTs online as shown in the following example:

1. Type XPSP 9.D from a blank CICS screen and press Enter.
2. Type TCT in the TABLE/AREA field.
3. Type TCTEUCTB in the LABEL field and press Enter. The TCTEUCTB field is
displayed (Figure 16-2).
Editing CICS Tables and Control Blocks 16-3

Figure 16-2. DSECTs Screen (9.D)

------------------------ XPEDITER/CICS - DSECTS (9.D) ---------------------C123


COMMAND ===> SCROLL ===> CSR
MODULE: CSECT:
TABLE/AREA: TCT TABLE ENTRY ID: 0751
LABEL: TCTEUCTB

3837053B 06B TCTEUCTB DS XL1 01 * . *
3837053C 06C TCTENIBA DS 0C
3837053C 06C TCTTEGU DS 0C
3837053C 06C TCTTERLA DS 0C
3837053C 06C TCTTETA DS XL4 3835C570 * ..E. *
38370540 070 TCTTESKA DS 0C
38370540 070 TCTERPLA DS 0C
38370540 070 TCTTELEA DS XL4 3817E030 * ..\. *
38370544 074 TCTTERST DS XL4 00000000 * .... *
38370548 078 TCTTETEA DS XL4 381777D8 * ...Q *
3837054C 07C TCTTETC DS XL4 00000000 * .... *
38370550 080 TCTEEILR DS XL4 384B5000 * ..&. *
38370554 084 TCTTESUA DS 0C
38370554 084 TCTEEIEX DS XL4 00000000 * .... *
38370558 088 TCTTEEIA DS XL4 00000000 * .... *
3837055C 08C TCTTECTK DS XL4 00000000 * .... *
38370560 090 TCTTECHN DS XL1 00 * . *
TCTECHAN EQU X'80'

You can change this field (01) by keying over the existing data in either hexadecimal or
character format.

This same technique can be used to update any table, control block, or area defined to
the CICS region.
16-4 Xpediter/CICS Assembler User Guide
17-1

Chapter 17.
Using 3270 Web Bridge Support Chap 17

This chapter demonstrates how to run Xpediter/CICS using the 3270 Web Bridge
function. Some typical Xpediter screens are shown, and any minor differences associated
with running Xpediter using the 3270 Web Bridge are noted.

You will use the XPED transaction in a web browser window to test the sample
application transaction XCB2 and fix an abend. XCB2 is a simple employee payroll
transaction that executes the COBOL program CWDEMCB2. The XCB2 transaction is
used throughout this chapter to cause several types of abends. (Although COBOL is used
in these examples, the same scenarios apply for all languages.)

This demonstration assumes your CICS region is configured to allow transactions to be


run in a web browser window using the 3270 Web Bridge.

Note: The demonstrations in this chapter should be performed in Xpediter’s standard


operating mode — not one of the three restricted modes. For more information,
see the Xpediter/CICS Reference Manual.

Running Xpediter/CICS Using the 3270 Web Bridge


1. In the Address field of your web browser, type the URL for your CICS region,
including the port number, followed by /CICS/CWBA/DFHWBTTC/XPED and press
Enter. The Xpediter/CICS Primary Menu will appear as shown in Figure 17-1. Input
fields appear as text entry boxes, and buttons are provided for standard 3270
terminal keys. Button labels are based on the LABEL column values in your profile.
17-2 Xpediter/CICS Assembler User Guide

Figure 17-1. Xpediter/CICS Primary Menu (XPED/XPRT) Using 3270 Web Bridge

Notes:
• If Xpediter has not yet been initialized in the CICS region, you will be prompted to
click the browser Refresh button before the Primary Menu appears.
• The browser progress indicator bar does not complete.
• The browser Back button may yield unpredictable results when using the 3270 Web
Bridge.
2. Click the CLEAR button in the browser window. Clicking this button takes the place
of pressing the Clear key. A blank CICS screen appears as shown in Figure 17-2.
Using 3270 Web Bridge Support 17-3

Figure 17-2. Entering XCB2 on a Blank CICS Screen

3. Type XCB2 in the blank CICS screen and click the Enter button. Clicking this button
takes the place of pressing the Enter key. The Demonstration Transaction screen
appears (Figure 17-3).
17-4 Xpediter/CICS Assembler User Guide

Figure 17-3. Demonstration Transaction Screen

4. To cause an ASRA abend, type 00001 for the employee number and click the Enter
button.
The CWDEMCB2 demonstration transaction program is intercepted, and the Source
Listing screen (2.L) appears as shown in Figure 17-4.
Using 3270 Web Bridge Support 17-5

Figure 17-4. Source Listing Screen (2.L) Showing an ASRA

5. Note the value of WA_HOURS. The bad data ($$$) in this field is causing the ASRA.
To change it, select the bad data, type 040, then click the ENTER button.
6. Click the GO button to continue the test. The Demonstration Transaction screen
appears as shown in Figure 17-5.
17-6 Xpediter/CICS Assembler User Guide

Figure 17-5. Demonstration Transaction Completed

7. Remember to end the session as described in “Exiting Xpediter/CICS and Ending a


Debugging Session” on page 2-5.
G-1

Glossary Basic Partitioned Access Method (BPAM). File


access method that can be applied to create pro-
gram libraries, in direct access storage, for conve-
nient storage and retrieval of programs.
AADF. Transaction used to access Abend-AID for
CICS to view reports. batch. Processing in which jobs are grouped
(batched). The jobs are executed sequentially, and
abend. Abnormal end of task. The termination of each job must be processed to completion before
a task, prior to normal completion, due to an the following job can begin execution.
unresolved error condition.
BDAM. Basic Direct Access Method.
Abend-AID for CICS. System software product
designed to analyze the cause of CICS transaction BK-CHAIN. Back chain pointer.
abends. It provides online diagnostics that explain
the cause of the abend, the location within the blank. Part of a data medium in which no charac-
program where the error occurred, and how to cor- ters are recorded. Its hexadecimal character repre-
rect the problem. sentation is X’40’.

abend code. Identifier for the current abend BL cell. Base Locator cell. These cells are used by
when an abend occurs. COBOL programs to provide addressability to data
within the working storage section of a program.
Abend trap. Function that allows Xpediter/CICS
to notify the user when a program breakpoint, BLL cell. Base Linkage Locator cell. These cells
abend, or storage violation has been encountered. are used by COBOL programs to provide address-
See “trap.” ability to data within the linkage section of a pro-
gram.
ADD OFFSET. Indicates a specific screen location.
The data at this location is scrolled to the top of BLW cell. Base Locator Working Storage cell.
the data portion of the screen. If the USE These cells are used by COBOL II programs to pro-
ADDRESS field contains an “X”, Xpediter/CICS vide addressability to data within the working
uses the data at this location as an address and dis- storage section of a program.
plays the location indicated. This feature is found
on screens 2.2 and 9.2. BPAM. Basic Partitioned Access Method.

ADDRESS. Address that is displayed on hexadeci- breakpoint. Xpediter/CICS method of pausing


mal dump format screens and indicates the begin- program execution during debugging. Setting a
ning address of the area being accessed. The breakpoint in a program halts execution of the
address does not change unless: program when a statement is about to be exe-
cuted. Breakpoints may be set as conditional or
• A new area is accessed unconditional and to occur either before or after
• The programmer types over the address with a the event.
location to be accessed
• The USE CONTENTS field is used to retrieve At a breakpoint, the user may view all the tables
data from a stored location. and areas necessary to solve a problem. After inter-
rogating the problem, the user may continue nor-
Assembler language processor. One of several mal execution of the system.
language processors provided by Compuware, this
language processor accepts Assembler output, channel. Analogous to a parameter list. Contain-
builds sort work records, sorts and merges the ers are grouped together in sets called channels.
records, and merges the records with the listing to
produce processor control blocks that can then be CICS. Customer Information Control System.
used as input to Xpediter/CICS and other Compu-
ware products. C language processor. One of several language
processors provided by Compuware, this language
Basic Direct Access Method (BDAM). File access processor accepts C output, builds sort work
method that directly retrieves or updates specified records, sorts and merges the records, and merges
blocks of data on a direct access storage device. the records with the listing to produce processor
control blocks that can then be used as input to
G-2 Xpediter/CICS Assembler User Guide

Xpediter/CICS and other Compuware products. Database Descriptor (DBD). Defines the data-
base associated with a PCB. Associated with every
CLC. Compare Logical Character. PSB is a list of PCBs that define databases that can
be accessed via a PSB. Each PCB-accessed database
CLOT. (DB2 only) CICS Life-of-Task block. can be identified by its DBD name, which is used
during the definition of the database to DL/I.
COBOL language processor. One of several lan-
guage processors provided by Compuware, this DA-UNB. Direct Access UNBlocked dataset.
language processor accepts COBOL compiler out-
put, builds sort work records, sorts and merges the DB2. An IBM relational database management
records, and merges the records with the listing to system.
produce processor control blocks that can then be
used as input to Xpediter/CICS and other Compu- DBD. DataBase Descriptor.
ware products.
DBPA. Transaction used to initiate certain Xpe-
command. Request from a terminal to perform diter/CICS functions at system start-up.
an operation or to execute a program.
DCT. Destination Control Table.
COMMAND field. Field that appears in the upper
left corner of most Xpediter/CICS screens. All Xpe- DDIO. A Compuware file access method.
diter/CICS functions and screens are selected by
entering the desired function or screen ID in the DDIO file. A generic name for an Abend-AID
COMMAND field. report file, or an Xpediter source listing file.

Compare Logical Character (CLC) instruction. DDIO file member. A generic name for an abend
report in an Abend-AID report file, or an Xpediter
An IBM machine compare instruction. source listing in a source listing file.

Compuware Shared Services (CSS). A set of default value. Choice among exclusive alterna-
components used by several Compuware products tives made by the system when no explicit choice
to provide storage, retrieval, and maintenance for is made by the user.
source listings and abend reports.
destination. Location at which a block of (lines)
Conditional breakpoint. For a statement set records or a single record is being copied or
with a conditional breakpoint, Xpediter/CICS moved. The destination can be specified with an A
interrogates the condition entered and if true, (After) or B (Before) line command.
halts execution of the program and receives con-
trol. Destination Control Table (DCT). A CICS table
describing transient data files.
Containers. The “big commarea” containers and
channels that IBM introduced in CICS Transaction DFHRPL. Library of CICS and user-written pro-
Server 3.1 to replace commareas. For additional grams that are loaded and executed as part of a
information, refer to IBM’s “CICS Information CICS system. Programs from this library are loaded
Center”. into CICS storage for online execution. DFHRPL
may be supplemented by LIBRARY resource defini-
CSECT field. Field on most Xpediter/CICS tions.
screens that is used to change the CSECT to be
accessed during the session. DL/I. Data Language 1.

dataname. The name of the data item in the DMAP. Data division map of a COBOL program.
working storage section of a COBOL program. The DMAP COBOL compile option produces a
report of all datanames and their associated BL or
dataset. Collection of data treated as a unit that BLL cell, displacement within the cell, and field
is the primary unit of access and storage. It can be description.
organized in various ways.
DOS. Disk Operating System.
DA-KEY. BDAM blocked DAtaset, deblocked by
KEY. DSECT. Dummy control section. A control sec-
tion that an Assembler program can use to format
DA-REL. BDAM blocked DAtaset, deblocked by a an area of storage without producing any object
RELative record. code.
G-3

EDT. MVS Eligible Device Table. VIEW SINGLE TASK screen (9.1) and the LIST ALL
TASKS (9.3) screen.
EIB. Execute Interface Block.
IMS. Information Management System.
EIS. Execute Interface Storage.
INRWORK. INput Register Work area.
entry-sequenced dataset (ESDS). VSAM dataset
whose records are loaded in sequence. Unlike a interactive. Pertaining to an application in
normal sequential dataset, ESDS records can be which each entry calls forth a response from a sys-
accessed randomly by their addresses. tem or program.

ESDS. Entry-Sequenced Dataset. IP address. A numeric address given to servers


and users’ computers connected to the Internet.
external security manager (ESM). A security
product that provides an interface to the z/OS Sys- ISPF. Interactive System Productivity Facility.
tem Authorization Facility (SAF). CA-ACF2, RACF,
and CA-Top Secret are examples of ESMs. JCL. Job Control Language.

Execute Interface Block (EIB). Block that con- key. Code used to locate a record and establish its
tains information pertinent to a command-level position in an index. The key can be part of a
transaction such as the current time and date, field, a full field, or multiple fields duplicated
transaction ID, task number, terminal ID, COM- from the record.
MAREA length, attention identifier, function code,
and response code. Key-Sequenced Dataset (KSDS). VSAM file type
whose records are loaded in key sequence. Records
FCT. File Control Table. are retrieved by key or address using an index.
New records are inserted in key sequence by
file. Complete organized collection of informa- means of distributed free space.
tion.
keyword. Reserved word that has special signifi-
File Control Table (FCT). A CICS table defining cance.
files that can be accessed by CICS programs. Also
used to generically apply to files defined in the KSDS. Key-Sequenced DataSet.
CSD.
line command. Edit command that is entered
HELP. Primary command that requests Xpediter’s directly on the line to be processed by overtyping
interactive Help facility. the sequence number at the beginning of the line.
Also known as a prefix command.
HEX. Primary command that alternates between
symbolic or dump format display. linkage section. A section of a COBOL program
used to describe data that is passed to it from CICS
HEX OFFSET. Hexadecimal value of the location or another program.
of the retrieved area relative to the beginning of
the address. The sum of the ADDRESS field and MENU. Primary command that ends the current
HEX OFFSET field indicates the actual address of function and returns the user to the SYSTEM
the data displayed. MENU.

HEX ON and HEX OFF. Displays data in charac- MODULE field. Field on most Xpediter/CICS
ter and zoned decimal format on the VARIABLE screens that is used to change the program to be
STORAGE screen (2.3). The user may view this accessed during the session.
same data in a standard hexadecimal dump format
by entering HEX ON in the COMMAND field. HEX MORE. Indicates there is more information to
OFF redisplays the data in character and zoned display. This indicator appears only when screen
decimal format. overflow data is not generally assumed. Use PF7
and PF8 to view the additional data.
hung task. A task suspended by the system.
MQ. IBM licensed programs that provide message
hung task analysis. A Xpediter/CICS facility for queuing services.
the XPSP user that allows interrogation of a sus-
pended task to determine the reason for its sus- offset. A relative location or position within a
pension. This function is available by using the data area.
G-4 Xpediter/CICS Assembler User Guide

OFL. Optional Features List. Also known as OPFL. profile. Control block that defines session char-
acteristics applicable to one or more users of Xpe-
operating system. Software that controls the exe- diter/CICS. Pertinent information in a profile may
cution of jobs. It may provide resource allocation include PF key settings, default abend trap, trace,
and scheduling. storage protection, and footing settings.

OS. Operating System. profile dataset. VSAM KSDS dataset containing


all profiles available for use during a Xpe-
paragraph. Set of one or more COBOL sentences, diter/CICS session.
making a logical processing entity, and preceded
by a paragraph name or a paragraph header. program function (PF) key. Keyboard keys that
are numbered from PF1 to PF24 and are pro-
PCB. Program Communication Block. grammed to perform functions such as scrolling.

PLIST. (DB2 only) Parameter List. Program Status Word (PSW). A special control
register, in the hardware, defining the current sta-
PF key. Program Function Key. tus and location of a program that is executing.

PL/I language processor. One of several lan- PSB. Program Specification Block.
guage processors provided by Compuware, this
language processor accepts PL/I compiler output, PSW. Program Status Word.
builds sort work records and an incore symbol
table of all the identifiers, and produces processor quick table disable. Method of turning off stor-
control blocks that can then be used as input to age protection monitoring without destroying the
Xpediter/CICS and other Compuware products. current table entries.

PLT. Program List Table. RCT. (DB2 only) Resource Control Table.

prefix commands. Another name for line com- record. Collection of related data or words
mands. treated as a unit.

Program Communication Block (PCB). One of a register. Storage device, having specified storage
list of control blocks used by DL/I that define the capacity such as a bit, byte, or a computer word,
databases that can be accessed via a particular PSB. and usually intended for a special purpose.
Each PCB-accessed database DBD name. For each
PCB with a PSB, Xpediter/CICS displays the PCB register save area. Group of 72 contiguous bytes
number and DBD name. Xpediter/CICS uses the used for saving registers when one program calls
PCB number to identify the PCB to access a DL/I another.
database from the selected PSB.
Relative Record DataSet (RRDS). VSAM dataset
Program List Table (PLT). CICS table describing whose record locations are specified by a number
a list of programs to be executed when CICS is in that represents a record’s location in the dataset
initialization or termination processing. relative to the beginning of the dataset.

Program Specification Block (PSB). DL/I control remote task trapping. Xpediter/CICS function
block that defines a set of DL/I databases that can that allows one terminal to trap abends, break-
be accessed from a program. The databases and points, and storage violations that occur on
segments in the databases that can be accessed are another terminal or in a non-terminal task.
defined via a list of PCBs defined in the PSB. To
access any DL/I database, always select a PSB. RFN. An abbreviation for RECEIVE FROM NET-
WORK. RECEIVE FROM NETWORK specifies that
program storage. Class of CICS storage used for the input for an SMP/E RECEIVE command is a
application programs. GIMZIP package on a TCP/IP connected FTP
server.
primary command. Command that provides a
general function. Primary commands are entered RRDS. Relative Record Dataset.
in the COMMAND field.
screen ID. Code entered in the COMMAND field
procedure division. Section of a COBOL program to retrieve information and function screens. The
that contains executable instructions. SCREEN ID for each screen appears on every
screen immediately preceding the screen title.
G-5

SCROLL field. A field on most Xpediter/CICS table entry ID. Identification command used to
screens that is used to set the default value to be directly retrieve the desired CICS table entry for
used for those screens that allow scrolling. display.

Segment Search Argument (SSA). A control task. Execution of a program or multiple pro-
block used by DL/I to access a segment within the grams within CICS to perform a specific function.
hierarchy of a database. Each task is assigned a unique number (task num-
ber) by CICS.
Shared Directory. A variable-length record VSAM
RRDS that maintains information about abends TCA. Task Control Area.
and language processing along with the attached
database activity. A shared directory can contain TCP/IP. Transmission Control Protocol/Internet
Abend-AID for CICS directory records for each Protocol. Set of communication protocols
region and transaction dump known to a server, enabling Telnet, FTP, e-mail, and other services.
Abend-AID directory records for abend report pro-
cessing, or source listing shared directory records TCT. Terminal Control Table.
necessary to process source listing database mem-
bers. Terminal Control Table (TCT). CICS table defin-
ing terminals used by CICS.
shared storage. Class of CICS storage that can be
shared between tasks. TOGGLE. Primary command that transfers you to
the Source Listing (2.L) screen.
SIT. System Initialization Table.
trace. Record of the execution of a computer pro-
snap dump. Dump that is taken at a specific gram; it exhibits the sequences in which the
point during execution of a program. Processing is instructions were executed.
generally continued after the dump has been
taken. trace table. CICS storage area into which trace
information is placed. This table contains the
SQLCA. (DB2 only) SQL Communication Area. chronological occurrences of events that take
place in CICS, recorded in wraparound fashion
SQLDA. (DB2 only) SQL Descriptor Area. within the trace table.

SSA. Segment Search Argument. trap. Xpediter/CICS feature. The user may set
traps to intercept CICS transaction abends and to
statement number. Sequence numbers provided view all areas at abend time. Traps may be set to
by compilers and assemblers to provide the pro- only intercept transaction abends at terminals
grammer with an easy means of identifying a running Xpediter/CICS or designated as remote.
statement within a program. Traps may be set to intercept specific transaction’s
abends, regardless of the terminal from where they
statement number column. Column on the dis- are executed. Traps may also be used to intercept
play where the statement numbers are located. In abends occurring in non-terminal tasks.
some cases, commands may be entered into this
column. TSA. Temporary Save Area.

STCA. System portion of the Task Control Area. unconditional breakpoint. For a statement set
with an unconditional breakpoint, Xpediter/CICS
stop. See breakpoint receives control and temporarily halts execution
of the program before or after this statement.
storage protection. Method of preventing pro-
grams from violating storage within the CICS use address. A feature that is available on the
region, thereby increasing the time that the region Memory Display screens (2.2 and 9.2). The USE
remains running. ADDRESS function automatically retrieves an
address reference from memory and displays the
storage protection exceptions. Xpediter/CICS location.
facility for allowing specific actions that are con-
sidered to be storage violations to take place. user labels. Labels generated by a user that
equate to storage locations.
system labels. Labels that equate to storage loca-
tions that may be used by any Xpediter/CICS user. variable. Name of a data item in a PL/I program.
Some system labels are predefined by Compuware.
G-6 Xpediter/CICS Assembler User Guide

view. Xpediter/CICS method of selecting data


items for display at a breakpoint or abend.

virtual storage. Storage space that may be


regarded as addressable main storage by the user
of a computer system in which virtual addresses
are mapped into real addresses.

Virtual Storage Access Method (VSAM). File


access method whereby the records in a file on a
direct access storage device can be accessed in key-
sequence (KSDS), entry-sequence (ESDS), or rela-
tive record sequence (RRDS).

VSAM. Virtual Storage Access Method.

VTAM. Virtual Telecommunications Access


Method.

working storage. A section of a COBOL program


used to define the data items that are used in a
program.

XPED. Transaction code entered to invoke Xpe-


diter/CICS. It provides a source-based focus for
debugging CICS application programs.

XPND. Transaction code entered to end an Xpe-


diter/CICS debugging session.

XPRT. Transaction code entered to invoke Xpe-


diter/CICS. XPRT provides a break/abend focus for
debugging CICS application programs.

XPSP. Transaction code entered to invoke the


XPSP level of Xpediter/CICS. This level is to be
used only by experienced system programmers
authorized to update CICS tables and control
areas. System-wide storage protection is set by the
XPSP user. This is the only Xpediter/CICS level
that does not restrict updating.
I-1

Index Automatic Trap Activation, 9-1

B
A
breakpoints, 2-1
overview, 2-1
Abend-AID for CICS interface, 8-1 setting, 2-1
accessing Abend-AID for CICS through Xpedit- testing without breakpoints
er/CICS, 8-1 sourceless debugging, 4-2, 4-13
issuing an Abend-AID for CICS snap dump, 8-3 browsing messages on an MQ queue, 13-3
turning on Abend-AID for CICS, 8-1
viewing Abend-AID for CICS diagnostics, 8-6
viewing the Abend-AID for CICS report directory,
8-5
C
accessed storage areas, reviewing on Select Address
screen, 14-7 chaining through CICS storage areas, 14-3
accessing Abend-AID for CICS through Xpedit- changing PF key settings, 10-2
er/CICS, 8-1 changing profile defaults, 10-1
accessing CICS storage, 14-1 CICS region storage protection, setting, 15-1
accessing storage areas, 14-1 CICS storage access
chaining through storage areas, 14-3 See accessing CICS storage
displaying CICS DSECTs, 14-2 CICS table editing
displaying CICS table entries, 14-5 See editing CICS tables and control blocks
reviewing accessed areas, Select Address screen, CICS table entries, displaying, 14-5
14-7 commands, 1-9
accessing CICS storage areas, 14-1 line commands, 1-11
accessing DL/1 databases, 11-1 primary commands, 1-9
list PCB, 11-2 Compuware Go customer support website, xiii
retrieving a segment, 11-4 Compuware language processor, 2-1
selecting PSBs and PCBs, 11-1 compile recommendations, 2-1
selecting segments from the PCB, 11-2 JCL, 2-2
accessing list of MQ queues, 13-1 overview, 2-1
accessing Xpediter/CICS, 2-3 postprocessor, 2-1
basic access from CICS, 2-3 preprocessor, 2-1
direct access by screen ID, 2-4 control block editing
ending a session, 2-5 See editing CICS tables and control blocks
fast-path access to Source Listing screen (2.L), 2-4 COUNT command for execution analysis, 5-1
Acrobat PDF online documentation, xii
adding messages on an MQ queue, 13-3
allowing storage violations, 7-2
alternate PF key settings, 10-3
D
alternate profile loading, 10-5
analyzing program data, 5-2 DB2 database support
analyzing program execution, 5-1 See using Xpediter/CICS with DB2
analyzing the data, 5-2 DDIO file
executing the program, 5-2 See Compuware language processor
setting up the analysis, 5-1 debugging an Assembler program
architecture of Xpediter/CICS, 1-2 creating a special profile for debugging, 3-6
Assembler program testing defining labels, 3-22
creating a special profile for debugging, 3-6 executing the program, 3-9
defining labels, 3-22 resuming program execution, 3-10
executing the program, 3-9 setting breakpoints, 3-8
resuming program execution, 3-10 See breakpoints
setting breakpoints, 3-8 Assembler programs, 3-8
See breakpoints sourceless debugging, 4-7, 4-18
Assembler programs, 3-8 viewing source, 3-8
sourceless debugging, 4-7, 4-18 debugging applications without source code, 4-1
viewing source, 3-8 debugging with breakpoints, 4-7, 4-18
asynchronous transactions, trapping modifying registers, 4-12, 4-21
See monitoring tasks started from remote terminals modifying the logic path, 4-11, 4-20
ATA, 9-1 single-stepping through code, 4-12, 4-21
ATASCREEN, 9-1 slow-motion execution through code, 4-9, 4-19
I-2 Xpediter/CICS Assembler User Guide

viewing traced offsets, 4-10, 4-20 NEWCOPY function, 2-2


debugging without breakpoints, 4-2, 4-13 preparing a program for execution, 2-1
modifying storage, 4-4, 4-15 global storage protection, 15-1
preparing for sourceless debugging, 4-2 allowing storage violations, 15-3
when to use sourceless debugging, 4-1 defining storage exceptions, 15-5
debugging DB2 programs, 12-11 defining system labels, 15-3
accessing DB2 storage, 12-13 monitoring storage violations, 15-6
interpreting DSNC abends and SQL codes, 12-12 setting region-wide storage protection, 15-1
setting breakpoints in SQL code, 12-11 setting storage protection during PLT startup, 15-9
setting keeps on DB2-specific data, 12-12 using for test regions, 15-3
debugging MQ programs
setting breakpoints at MQ calls, 13-4
setting keeps on MQ-specific data, 13-4 H
debugging MRO and ISC transactions, 6-1
deferring remote trap, 6-4
defining storage exceptions, 15-5 HELP AUTOKEEPS, 3-4
defining system labels for storage protection, 15-3 Help facility overview, 1-7
Diagnosis Mode, 1-1–1-2, 2-3 Help facility, MQ completion and reason codes, 13-4
Diagnosis/Utilities Mode, 1-1–1-2, 2-3 HELP INTELLIKEEPS, 3-4
diagnostics, Abend-AID for CICS, 8-6 HTML documentation, xii
displaying CICS DSECTs, 14-2 Hypertext Help
displaying CICS table entries, 14-5 See Help facility overview
distributed program link, 6-1
distributed transaction processing, 6-1
DL/1 databases, accessing, 11-1 I
DSA chains, 14-4
DSECT mapping, DB2 storage, 12-13
DSECTs, CICS, updating, 16-2 initial COMMAREA (ICA), 3-14
DSECTs, displaying, 14-2 Intelligent Autokeeps, 3-4
DSNC abends, 12-12 intellikeep, 3-4
intended audience, xii
Intercept Summary (1.7), 3-12
E interfacing with Abend-AID for CICS, 8-1
accessing Abend-AID for CICS through Xpedit-
er/CICS, 8-1
easy query for DB2 database access, 12-1 issuing an Abend-AID for CICS snap dump, 8-3
accessing Table/View List screen, 12-2 turning on Abend-AID for CICS, 8-1
building an SQL easy query, 12-6 viewing Abend-AID for CICS diagnostics, 8-6
editing a column, 12-9 viewing the Abend-AID for CICS report directory,
editing a row, 12-4 8-5
editing CICS tables and control blocks, 16-1 introduction, xi
displaying and updating DSECTs, 16-2 intended audience, xii
editing a CICS table entry, 16-1 related publications, xii
ending a debugging session, 2-5 issuing an Abend-AID for CICS snap dump, 8-3
enhanced breakpoints, 3-21
enhanced traps, 3-13
error messages L
No Source Available, 2-2
exceptions to storage protection, defining, 15-5
execution analysis of a program line commands, common, 1-11
See analyzing program execution A (After), 1-11
exiting Xpediter/CICS, 2-5 AC (After Conditional), 1-11
B (Before), 1-11
BC (Before Conditional), 1-11
F C/CC (Count), 1-12
D (Delete), 1-12
DH (Delete Hex), 1-12
file control table (FCT), displaying, 14-5 GT (Go To), 1-12
K (Keep), 1-12
P (Peek), 1-12
G S/SS (Skip), 1-12
SC (Skip Conditional), 1-12
X/XX (Exclude), 1-12
getting started, 2-1 list PSB selection, 11-1
accessing Xpediter/CICS, 2-3 loading a profile, 10-5
ending a debugging session, 2-5
exiting Xpediter/CICS, 2-5
navigating through Xpediter/CICS, 2-4
I-3

M PF23 (DRIGHT), 1-13


PF24 (RETRIEVE), 1-13
PLT startup, setting storage protection, 15-9
modes of operation, 2-3 primary commands, common, 1-9
monitoring storage violations, 15-6 AFTER, 1-9
monitoring tasks started from remote terminals, 6-1 BEFORE, 1-9
deferring remote trap, 6-4 CALC, 1-10
releasing trapped transactions, 6-5 COUNT, 1-10
setting remote traps, 6-1 DELETE, 1-10
viewing a remote session, 6-2 EXCLUDE, 1-10
viewing traps for asynchronous transactions, 6-6 EXIT, 1-10
MQ completion and reason codes, 13-4 FIND, 1-10
MQ File Utility, 13-1 GO, 1-10
MQSeries. See WebSphere MQ GOTO, 1-10
MRO and ISC transactions, 6-1 GPREGS, 1-10
HELP, 1-10
KEEP, 1-10
N LOCATE, 1-10
REPEAT, 1-10
RUNTO, 1-11
navigating through Xpediter/CICS, 2-4 SET, 1-11
NEWCOPY function, 2-2 SHOW, 1-11
No Source Available (error message), 2-2 SKIP, 1-11
VERIFY, 1-11
Primary Menu, 1-4
O Primary Menu (XPED/XPRT), 1-4, 3-1, 4-2, 4-13, 8-2
Primary Menu (XPED/XPRT) using 3270 Web Bridge,
17-2
offset addresses, Memory Display screen (2.2), 14-3 Primary Menu (XPSP), 1-4
overview product architecture, 1-2
product architecture, 1-2 product overview, 1-1
Help facility, 1-7
product conventions, 1-7
P command entry, 1-9
common screen fields, 1-7
PF key settings, 1-12
PCB selection, 11-1 product facilities
PDF documentation, xii CICS region maintenance, 1-6
PEEK primary command, 3-3 CICS storage protection, 1-6
setting breakpoints customizing facilities, 1-6
See breakpoints file utility, 1-6
Assembler programs, 3-8 source-level testing and debugging, 1-5
sourceless debugging, 4-7, 4-18 profile setup, 10-1
PF key settings, changing, 10-2 changing PF key settings, 10-2
PF key settings, default, 1-12 changing profile defaults, 10-1
PF01 (HELP), 1-12 loading a profile, 10-5
PF02 (RUNTO CSR), 1-13 saving profile defaults, 10-6
PF03 (END), 1-13 program execution, analyzing
PF04 (=X), 1-13 See analyzing program execution
PF05 (RFIND), 1-13 protection, storage, 7-1, 15-1
PF06 (LOCATE *), 1-13 providing storage protection, 7-1
PF07 (UP), 1-13 allowing storage violations, 7-2
PF08 (DOWN), 1-13 setting automatic storage protection, 7-1
PF09 (GO 1), 1-13 PSB selection, 11-1
PF10 (LEFT), 1-13
PF11 (RIGHT), 1-13
PF12 (GO), 1-13 R
PF13 (MENU), 1-13
PF14 (MEMORY, or =2.2), 1-13
PF15 (SELECT), 1-13 region storage protection, setting, 15-1
PF16 (WS, DS, VS or =2.3), 1-13 related publications, xii
PF17 (=2.4), 1-13 releasing trapped transactions, 6-5
PF18 (=2.8), 1-13 remote session viewing, 6-2
PF19 (UP MAX), 1-13 remote task monitoring
PF20 (DOWN MAX), 1-13 See monitoring tasks started from remote terminals
PF21 (FILE, or =5), 1-13 restricted modes, 1-1, 2-3
PF22 (DLEFT), 1-13 restricted operating modes, 1-2
retrieving a DL/1 segment, 11-4
I-4 Xpediter/CICS Assembler User Guide

reviewing accessed storage, Select Address screen, 14-7 using for test regions, 15-3
storage violations, allowing, 15-3
System Facilities Menu (9), 1-5
S system labels, defining for storage protection, 15-3

screen format, 1-7 T


screen navigation, 2-4
Select Address screen, reviewing accessed storage ar-
eas, 14-7 table entries, CICS, displaying, 14-5
selecting PSBs and PCBs, 11-1 tables, CICS, editing
SET FOOT ANALYZE command, 5-1 See editing CICS tables and control blocks
setting storage protection, 7-1 Task Storage screen (2.S), 14-4
automatic protection using XPSP, 15-2 test region storage protection, 15-3
automatic storage protection using XPED, 7-1 testing a DB2 program
defining storage exceptions, 15-5 See debugging DB2 programs
defining system labels, 15-3 testing an Assembler program
during PLT startup, 15-9 creating a special profile for debugging, 3-6
region-wide storage protection, 15-1 defining labels, 3-22
test region protection, 15-3 executing the program, 3-9
setting up a profile, 10-1 resuming program execution, 3-10
changing PF key settings, 10-2 setting breakpoints, 3-8
changing profile defaults, 10-1 viewing source, 3-8
loading a profile, 10-5 testing applications without source code, 4-1
saving profile defaults, 10-6 debugging with breakpoints, 4-7, 4-18
setting up program analysis, 5-1 modifying registers, 4-12, 4-21
shared directory, G-5 modifying the logic path, 4-11, 4-20
single-stepping through code in sourceless debugging, single-stepping through code, 4-12, 4-21
4-12, 4-21 slow-motion execution through code, 4-9, 4-19
slow-motion execution through code, 4-9, 4-19 viewing traced offsets, 4-10, 4-20
SLS overview, 2-1 debugging without breakpoints, 4-2, 4-13
snap dump, Abend-AID for CICS, 8-3 modifying storage, 4-4, 4-15
source-level support (SLS) debugging overview, 2-1 preparing for sourceless debugging, 4-2
sourceless debugging, 4-1 when to use sourceless debugging, 4-1
debugging with breakpoint transferring between Xpediter/CICS screens, 2-4
slow-motion execution through code, 4-9 trapping remote tasks
debugging with breakpoints, 4-7, 4-18 See monitoring tasks started from remote terminals
modifying registers, 4-12, 4-21
modifying the logic path, 4-11, 4-20
single-stepping through code, 4-12, 4-21 U
slow-motion execution through code, 4-19
viewing traced offsets, 4-10, 4-20
debugging without breakpoints, 4-2, 4-13 update password security, 1-13
modifying storage, 4-4, 4-15 using Automatic Trap Activation, 9-1
preparing for, 4-2 using global storage protection, 15-1
when to use, 4-1 allowing storage violations, 15-3
SQL code, breakpoints, 12-11 defining storage exceptions, 15-5
SQL codes, Help facility for, 12-12 defining system labels, 15-3
starting Xpediter/CICS monitoring storage violations, 15-6
See getting started setting automatic storage protection, 15-2
storage access, 14-1 setting region-wide storage protection, 15-1
accessing storage areas, 14-1 setting storage protection during PLT startup, 15-9
chaining through storage areas, 14-3 using for test regions, 15-3
displaying CICS DSECTs, 14-2 using Xpediter/CICS with DB2, 12-1
displaying CICS table entries, 14-5 debugging DB2 programs, 12-11
reviewing accessed areas, Select Address screen, accessing DB2 storage, 12-13
14-7 interpreting DSNC abends and SQL codes, 12-12
storage areas, reviewing on Select Address screen, 14-7 setting breakpoints in SQL code, 12-11
storage exceptions, defining, 15-5 setting keeps on DB2-specific data, 12-12
storage protection, 7-1 using the DB2 easy query, 12-1
allowing storage violations, 7-2, 15-3 accessing Table/View List screen, 12-2
defining storage exceptions, 15-5 building an SQL easy query, 12-6
defining system labels, 15-3 editing a column, 12-9
monitoring storage violations, 15-6 editing a row, 12-4
setting automatic protection, 15-2 setting session default attributes, 12-1
setting automatic storage protection, 7-1, 15-2 Utilities Mode, 1-1–1-2, 2-3
setting protection during PLT startup, 15-9
setting region-wide protection, 15-1
I-5

V
viewing the Abend-AID for CICS diagnostics, 8-6
viewing the Abend-AID for CICS report directory, 8-5

W
Web Bridge support, 17-1
WebSphere MQ, 3-21, 13-1

X
XPED transaction, 1-3
XPED transaction users, xii
Xpediter Primary Menu (XPED/XPRT), 1-4, 4-2, 4-13,
8-2
Xpediter Primary Menu (XPED/XPRT) using 3270 Web
Bridge, 17-2
Xpediter Primary Menu (XPSP), 1-4
XPRT transaction, 1-3
XPRT transaction users, xii
XPSP transaction overview, 1-4
XPSP transaction users, xii
I-6 Xpediter/CICS Assembler User Guide

You might also like