View previous topic :: View next topic
|
Author |
Message |
krish2309
New User
Joined: 29 Jan 2014 Posts: 17 Location: Kuala Lumpur
|
|
|
|
Hi
Got an S0C1 abend and offset show as 'FFFFFFFF'. I googled and could see the comments as Outside application program. Kindly please help to advise the procedure to resolve or identify the failing instructions.
I also referred the following URL to to resolve S0C1. they use R15 to identify failing instruction which has value but the register R15 has spaces(4040) which stops me to proceed further in the below abend.
http://cics.ufl.edu/asra0C1dump.html
-
Code: |
PSW & REGISTERS AT TIME OF INTERRUPT
0PSW 078D1000 C0404042 00020001 40404800
0REGS 0-7 2B0844B0 2BF88090 2BF882BC AB07BE98 2B084688 2B0846DC 2BFF4EFE 2BF8864C
0REGS 8-15 2BF88335 2B084440 2848D080 2BFF00D0 2BFF0468 2BF88028 AB07D020 40404040
-EXECUTION KEY 8
0000002C0 00000000 00000000 079025BB 2BFF0008 00000000 00000000 00000000 00000000 *................................* 2E4D9940
0000002E0 00000000 00000000 E3C3E2F0 F0F6F8F0 F0C3F161 C1D2C5C1 FFFFFFFF 00030781 *........XXX006800C1/AKEA.......a* 2E4D9960
000000300 00000000 00000000 *........ * 2E4D9980
LOAD PT. NAME ENTRY PT LENGTH
2B07BE70 XXX00680 2B07BE70 0000E2A0
OFFSET OFFSET NAME TYPE LENGTH DDNAME SEQ MEMBER
0 DFHEAI CSECT 26 SYSLIB 11 DFHEAI
8 8 DFHEI1 LABEL
28 XXX00680 CSECT AD20 SYSLIN 03 **NULL**
|
|
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
You've got spaces into registers. Most likely way that that happened is overwriting a Save Area with spaces.
Is it a COBOL-only, Assembler-only or mixed system?
Is this Production? What changed recently? If not, what were your recent changes? |
|
Back to top |
|
|
krish2309
New User
Joined: 29 Jan 2014 Posts: 17 Location: Kuala Lumpur
|
|
|
|
Thank you Bill.
Application is mixed of COBOL and Assembler but the failed program is Assembler. It happened in production. This is one of recurring issue which recently assigned to me. I requested cics log for the issue happened in recent past.
Would you please suggest whether any options to fix/can proceed from the provided information |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
OK, so since it is Assembler not COBOL, and actually looking at the registers, they mostly look "reasonable" so it is not (likely) an overwrite of a Save Area, but of an address (of a module, or a section of code in the program with a branch/return).
Register 14 should be the address which was last branched to, 15 should be the return address. From the PSW it looks like something branched to 15, which ran for a while and then died.
Find where Register 14 points to, then what code wants to do that branch. At that point you should see how space got into Register 15. That's assuming Register 14 is good :-) |
|
Back to top |
|
|
krish2309
New User
Joined: 29 Jan 2014 Posts: 17 Location: Kuala Lumpur
|
|
|
|
Thank you Bill.
Let me check it on tomorrow and keep you posted. |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3049 Location: NYC,USA
|
|
|
|
User Action:
Code: |
Description: An attempt was made to execute an invalid machine
instruction operation code. The operation code is either
invalid or is for an instruction that is not available on
this CPU.
This failure is usually due to a branch to an invalid storage
location, as might occur in a load module with unresolved
external references, or when a branch to an address outside
of a program occurs. (Reason Code 1)
User Action: Correct the program logic or construction error and resubmit
the job. Possible causes for this abend include:
Amode was set to 24, but a branch was attempted to a
31-bit or (on z/OS) a 64-bit address
In assembler, coding 'B R14' when you meant to code 'BR R14'
Subscript error occurred
"Clobbered" code; i.e., the executing program was
corrupted in virtual storage and then a branch was
performed into the corrupted code
Tried to read a file that was not open
Misspelled DDNAME followed by attempted I/O to same file
Error in parameters passed to subroutines
Missing DD card followed by attempted I/O to same file
Recording mode was wrong, or density was incorrect
Bad load module, possible bad object deck in FORTRAN
(unresolved external references)
Missing dimension statement
Same name for an array and a subroutine
COBOL: subroutine prog ID was the same as the entry name
tried to call within COBOL sort I/O procedure
tried to call a subroutine which could not be found
incomplete DCB for SORTIN file
using sort verb, DDNAME was not SORTOUT when the
"giving" option was used.
executing sort-using after opening SORTIN file |
|
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
Is the Assembler sub-program "CALLED" (not LINKED-TO) from CICS/COBOL?
If it's a "CALLED" sub-program, is the storage reentrant and it's not program-storage (part of the load module)?
I've come across some wild abends, such as a S0C1 on a CLI instruction in a non-reentrant Assembler sub-program in a CICS environment and it left me scratching my head, until I realized the storage was non-reentrant.
Is the sub-program used in both Batch and CICS and in CICS, reentrant storage is not allocated by the sub-program nor passed as an additional parameter by reentrant CICS/COBOL (its own storage)?
If you need to know the run-environment, use the CICS Macro DFHAFCD TYPE=LOCATE (R15 is the default) at the start of the Assembler sub-program and if Rx is equal to F'0' or if zero-off Rx (for a length of 3) is not equal to 'AFC' then the run-environment is Batch. Otherwise, it's CICS.
Code: |
DFHAFCD TYPE=LOCATE,REG=Rx GET RUN-ENVIRONMENT
LTR Rx,Rx BATCH ENVIRONMENT?
BZ NOTCICS YES, NOT CICS
CLC =CL3'AFC',0(Rx) BATCH ENVIRONMENT?
BNE NOTCICS YES, NOT CICS
|
HTH.... |
|
Back to top |
|
|
|