Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

PSW & R14 contents are only to find EXEC CICS statement?

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CICS
View previous topic :: :: View next topic  
Author Message
ignich7

New User


Joined: 02 Nov 2005
Posts: 65

PostPosted: Tue Oct 26, 2010 7:55 pm    Post subject: PSW & R14 contents are only to find EXEC CICS statement?
Reply with quote

Hello...

I want to know whether the PSW & R14 contents are used only to find the recently executed EXEC CICS statement or it can be used to find non-CICS (COBOL for eg.) statements as well.

I am reading CICS dump analysis. I wrote a sample program(COBPRG) to produce ASRA abend. I included a cobol statement which divides an integer by 0.

Now, I am trying to locate my failed instruction from the CICS dumps. When I looked at the load point address and the return address of the failed statement, the load point seemed to be higher than the return address of the failed statement. And so, I could not subtract load point address from the return address of the failed instruction in order to get the offset in my program.

These are my trace entries...
Code:
 LD 0001 LDLD  ENTRY ACQUIRE_PROGRAM       1025D6B0                           
 LD 0002 LDLD  EXIT  ACQUIRE_PROGRAM/OK    8FA143C0,0FA143C0,13A8,REUSABLE,ERDS
 AP 1940 APLI  ENTRY START_PROGRAM         COBPRG,CEDF,FULLAPI,EXEC,NO,10022C24
 SM 0301 SMGF  ENTRY GETMAIN               84A8,YES,RUWAPOOL,TASK31           
 SM 0302 SMGF  EXIT  GETMAIN/OK            10123868                           

and the return address of the failing instruction...

Code:
                                                                               
 AP 1942 APLI  *EXC* - Program-Check   FUNCTION(START_PROGRAM) PROGRAM(COBPRG)
                    ENVIRONMENT_TYPE(EXEC) SYNCONRETURN(NO) LANGUAGE_BLOCK(1002
                    SYSEIB_REQUEST(NO)                                         
                                                                               
               TASK-00044 KE_NUM-00ED TCB-QR   /007CE758 RET-8F00C7A8 TIME-17:5

                                                                             
AP 0790 SRP  *EXC* - PROGRAM_CHECK                                           
                                                                             
              TASK-00044 KE_NUM-00ED TCB-QR   /007CE758 RET-8EDA7876 TIME-17:5
                1-0000  F0C3F961 C1D2C5C1 018400C9 0000FFFF  C4C6C8C1 D7D3C9F1

AP 0781 SRP  *EXC* - ABEND_ASRA PROGRAM(COBPRG  ) OFFSET(00000490) EXEC_KEY(CI
                                                                             
              TASK-00044 KE_NUM-00ED TCB-QR   /007CE758 RET-8EDA7876 TIME-17:5

                                                                               
 AP 1942 APLI  *EXC* - Abend-Percolate FUNCTION(START_PROGRAM) PROGRAM(COBPRG)
                    ENVIRONMENT_TYPE(EXEC) SYNCONRETURN(NO) LANGUAGE_BLOCK(1002
                    SYSEIB_REQUEST(NO)                                         
                                                                               
               TASK-00044 KE_NUM-00ED TCB-QR   /007CE758 RET-8F00C7A8 TIME-17:5                                                               
                                                                               
 AP 1942 APLI  *EXC* - Abend-Percolate FUNCTION(START_PROGRAM) PROGRAM(COBPRG)
                    ENVIRONMENT_TYPE(EXEC) SYNCONRETURN(NO) LANGUAGE_BLOCK(1002
                    SYSEIB_REQUEST(NO)                                         
                                                                               
               TASK-00044 KE_NUM-00ED TCB-QR   /007CE758 RET-8F00C7A8 TIME-17:5


Please let me know whether we can only locate failed EXEC CICS statement by PSW/R14 or we can locate non-CICS statements also.

Thanks in advance,
Gnana Nicholas I
Back to top
View user's profile Send private message

Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 7931
Location: Bellevue, IA

PostPosted: Tue Oct 26, 2010 8:10 pm    Post subject:
Reply with quote

Code:
AP 0781 SRP  *EXC* - ABEND_ASRA PROGRAM(COBPRG  ) OFFSET(00000490) EXEC_KEY(CI
Why not just use the provided offset?

There should be a lot more trace entries for your program -- the initial GETMAIN is just allocating storage for your program; there's typically a number of trace entries (sometimes hundreds) for a CICS program.

Also, if your CICS region is providing a dump, using IPCS would be the best analysis tool. The precise verb to use depends upon the CICS release but that's not hard to find.
Back to top
View user's profile Send private message
ignich7

New User


Joined: 02 Nov 2005
Posts: 65

PostPosted: Wed Oct 27, 2010 12:05 pm    Post subject:
Reply with quote

Thanks for the response Robert.

I got these internal trace entries from the CICS dumps. I formatted it by VERBX DFHPD650 'TR=2' as my CICS version is 3.2

The load point address of my program is 0FA143C0 and the return adresses captured in all the trace entries are RET-8F00C7A8, RET-8EDA7876, RET-8EDA7876, RET-8F00C7A8 and RET-8F00C7A8. All these return addresses are less than 0FA143C0. I am bit ambiguous why it looks so.

--------------------------
Gnana Nicholas I
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 7931
Location: Bellevue, IA

PostPosted: Wed Oct 27, 2010 5:08 pm    Post subject:
Reply with quote

I repeat my question -- since you've already been told the offset in the program for your abend, why do you care about return addresses at all?
Back to top
View user's profile Send private message
ignich7

New User


Joined: 02 Nov 2005
Posts: 65

PostPosted: Wed Oct 27, 2010 5:17 pm    Post subject:
Reply with quote

Not anymore. Thanks again for your help Robert icon_smile.gif

--------------------
Gnana Nicholas I
Back to top
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2502
Location: Atlanta, Georgia, USA

PostPosted: Wed Oct 27, 2010 5:36 pm    Post subject: Reply to: PSW & R14 contents are only to find EXEC CICS
Reply with quote

When the high-order bit of a register is "ON", this normally means 31-Bit addressing-mode.

In your example, subtract X'80000000' from one of these register-values and you'll see.

This can also be done programmatically in Assembler (three of many ways) -

Code:

         LA   Rxx,0(,Rxx)      CLEAR TOP-BIT
         NIHH Rxx,32767        SAME
         N    Rxx,=X'7FFFFFFF' SAME

Much cheaper than a SUBTRACT.... icon_wink.gif

Bill
Back to top
View user's profile Send private message
ignich7

New User


Joined: 02 Nov 2005
Posts: 65

PostPosted: Wed Oct 27, 2010 6:08 pm    Post subject:
Reply with quote

Yeah.. which means just discarding the higher order digit. Even if you do so, my initial question stands still icon_wink.gif

Thanks for your response Bill,
Gnana Nicholas I
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CICS All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts find particular member name in PDS us... ravi243 CLIST & REXX 10 Mon Dec 19, 2016 6:44 pm
No new posts INDEPENDENT CICS TS 4.1 MRO REGION UP... Kyle Carroll CICS 0 Wed Dec 14, 2016 6:55 pm
No new posts CICS START AND CANCEL blayek CICS 1 Wed Dec 07, 2016 3:27 am
No new posts How does a called pgm know if its cal... Graeme Westerman COBOL Programming 4 Tue Nov 29, 2016 9:25 pm
No new posts How to find the first monday of the w... abdulrafi COBOL Programming 10 Fri Nov 25, 2016 3:24 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us