I have had two of these during the course of two months, so it's getting
serious!

The abend happens in my implementation of a C strupr() function when the TRE
instruction is executed:

 

         L       R3,=X'7FFFFFFF'    string maximum length

         XR    R0,R0              zero terminator byte 

         LA     R1,UPRX            translate table      

TST  TRE   R2,R1              fold string          

         BC     1,TST            resume translation   

 

           R0              R1             R2              R3
PSW

00000000 0009C5EC 1AA748F8 7FFFFFFF  078D04008009BD14

 

The memory pointed to by R1 and R2 is addressable and in Sp0, key 8, so bog
standard. I know R3

looks dodgy, but that is because the string to be upper-cased must be zero
byte terminated. 

R2 points at X'D4C6C9E3E2E3404000', so the format is correct. Given all
this, why has the instruction caused an

abend? The code lives in a server that is running all day, every day. I
wondered if the target data had been 

released by another task, but VSMDATA showed a DQE for the data's page and
no FQE for the data itself,

so the data should still be available (as I understand it). Notice R3 hasn't
changed, so the abend happened 

on the very first byte.

 

Any suggestions gratefully received!

Robin

 

 

 


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to