Page 3 of 6

Re: Urgent!! SOC4 reason code 4

PostPosted: Fri Dec 16, 2011 4:51 pm
by durga_r82
Billy,

Below are the msgs from Dump

DMW001I No listing found for ProgB.

Failing Instruction in Context:
00000000_160870AC -10 4040 4040 STH R4,64(,R4)
00000000_160870B0 -C 4040 4040 STH R4,64(,R4)
00000000_160870B4 -8 4040 4040 STH R4,64(,R4)
00000000_160870B8 -4 4040 4040 STH R4,64(,R4)
00000000_160870BC 0 4040 0000 STH R4,0
00000000_160870C0 4 0000 Invalid Opcode
00000000_160870C2 6 FFFF Invalid Opcode
00000000_160870C4 8 FFB2 Invalid Opcode


Storage around Failing Instruction
Address Offset Hex Data
1608709C -20 40404040 40404040 40404040 40404040
160870AC -10 40404040 40404040 40404040 40404040
160870BC 0 40400000 0000FFFF FFB21608 70001608
160870CC 10 70380000 00080000 00061608 7038160A

We identified the offset from this addresses and in the module map it looks like C-SECT impacted
4 V-CON | CEEBXITA $UNRESOLVED(W)

But it is the same in development also.

When looked for address 1608 in ProgB there was a move statement which is appearing in the middle of the code which is no way related to the linkage section.
Can you please advice?

Re: Urgent!! SOC4 reason code 4

PostPosted: Fri Dec 16, 2011 6:00 pm
by BillyBoyo
Failing Instruction in Context:                         
00000000_160870AC  -10 4040 4040        STH   R4,64(,R4)
00000000_160870B0   -C 4040 4040        STH   R4,64(,R4)
00000000_160870B4   -8 4040 4040        STH   R4,64(,R4)
00000000_160870B8   -4 4040 4040        STH   R4,64(,R4)
00000000_160870BC    0 4040 0000        STH   R4,0       
00000000_160870C0    4 0000             Invalid Opcode   
00000000_160870C2    6 FFFF             Invalid Opcode   
00000000_160870C4    8 FFB2             Invalid Opcod
e


Storage around Failing Instruction                     
Address    Offset  Hex Data                           
1608709C      -20  40404040 40404040 40404040 40404040
160870AC      -10  40404040 40404040 40404040 40404040
160870BC        0  40400000 0000FFFF FFB21608 70001608
160870CC       10  70380000 00080000 00061608 7038160A


All of this is showing you that your program has been overwritten, or that your program has branched to somewhere it shouldn't. The "Storage around Failing Instruction" would normally be showing you the other instructions. You have spaces, some low-values, some high-values and some things which look a bit like addresses.

Either your code has been overwritten with storage, or, you have branched into storage.

You may recognise from what Steve Myers said earlier. I have stated that the overwriting is more likely because it is a Cobol program. However, the x'BC' for your location from the start of the module Progb is absurdly small for a Cobol program. That displacement is probably in the intitialisation of the program.

When you can, see if you can compile the Progb with the generated pseudo-assembler.

Re: Urgent!! SOC4 reason code 4

PostPosted: Fri Dec 16, 2011 6:18 pm
by BillyBoyo
Please don't send the information in a PM. Post it for everyone.

Re: Urgent!! SOC4 reason code 4

PostPosted: Fri Dec 16, 2011 6:28 pm
by durga_r82
Just saw the listing and found the below as a warning msg in ProgB as below. Guess this would be the problem
IGYPA3013-W Data items "WS-TOKEN-TEXT-TEMP (ALPHANUMERIC REFERENCE MODIFIED ITEM)" and "WS-TOKEN-TEXT-TEMP (ALPHANUMERIC)"
had overlapping storage. An overlapping move will occur at execution time.
Any idea??

Re: Urgent!! SOC4 reason code 4

PostPosted: Fri Dec 16, 2011 6:32 pm
by BillyBoyo
Well, that is interesting, but shouldn't be the problem.

Can you post code doing the MOVE and the code which sets up any fields used for the values of the reference modification. Plus the DATA DIVISION definitions of all the fields.

The SSRANGE should prevent reference modification stretching outside the field it is being applied to, so this shouldn't be able to garble anything else.

SOC4 reason code 4

PostPosted: Fri Dec 16, 2011 6:35 pm
by durga_r82
MOVE SPACES TO WS-TOKEN-TEXT-TEMP   
MOVE  WS-TOKEN-TEXT(WS-INDEX1)       
    (1:WS-TOKEN-TEXT-LEN(WS-INDEX1))
    TO  WS-TOKEN-TEXT-TEMP           
   (1:WS-TOKEN-TEXT-LEN(WS-INDEX1))
PERFORM VARYING WS-CTR FROM 1 BY 1 UNTIL     
  WS-TOKEN-TEXT-TEMP(WS-CTR:1) > SPACE       
   IF WS-TOKEN-TEXT-TEMP(WS-CTR:1) = ' '     
    add 1          to ws-space-ctr           
    MOVE WS-TOKEN-TEXT-TEMP(WS-CTR + 1:)     
    TO   WS-TOKEN-TEXT-TEMP(WS-CTR:)         
   END-IF                                   
END-PERFORM                                 
MOVE WS-TOKEN-TEXT-TEMP(ws-space-ctr + 1:)   
    TO   WS-TOKEN-TEXT-TEMP                 
MOVE 0          TO WS-TEMP-STRING-SEARCH-LEN


Above is for the MOVE statement on the warning message that was displayed in the listing

Re: Urgent!! SOC4 reason code 4

PostPosted: Fri Dec 16, 2011 6:39 pm
by durga_r82
01  WS-TOKEN-TEXT-TEMP        PIC X(1000).       
01  WS-NON-TRANS-TOKEN-TABLE .                   
  10 WS-NON-TRANS-TOKEN-ENTRY OCCURS 100 TIMES. 
    15 WS-TOKEN-TYPE          PIC X(06).         
    15 WS-TOKEN-TEXT          PIC X(1000).       
    15 WS-TOKEN-TEXT-LEN      PIC 9(05).         
    15 WS-SPACE-BEFORE        PIC 9(02).         
    15 WS-SPACE-AFTER         PIC 9(02).         
    15 WS-DATE-FMT            PIC X(10).         
    15 WS-MONTH-LIT           PIC X(09).         
    15 WS-MONTH-LEN           PIC S9(5) COMP-3. 
    15 WS-POS                 PIC S9(5) COMP-3. 


The address 160870BC in dump matches with the below MOVE stmt
MOVE WS-DATE-OUT-LEN TO
WS-TOKEN-TEXT-LEN(WS-INDEX1)
WS-TOKEN-TEXT-LEN ===> is the variable that is in the above definition of array. So I thought that the warning message is related to it.

Re: Urgent!! SOC4 reason code 4

PostPosted: Fri Dec 16, 2011 6:48 pm
by BillyBoyo
Can you show the definition of WS-INDEX1, please? Is it an index on a table (if so show the table)?

Re: Urgent!! SOC4 reason code 4

PostPosted: Fri Dec 16, 2011 6:54 pm
by durga_r82
01 WS-INDEX1 PIC S9(4) COMP. It is just as a declaration in ProgB

Re: Urgent!! SOC4 reason code 4

PostPosted: Fri Dec 16, 2011 6:56 pm
by BillyBoyo
Yoy, that's no INDEX, it is a subscript. Name should change later, can only cause confusion.