I don't have an example in front of me (not enough S0C4's lately <g>) so I 
can't talk specifics but I am generally very happy with the CEEDUMP and find it 
quite satisfactory. My C++ is exclusively AMODE 31 (with some assembler 
subroutines using SAM64) so I suspect your problems are due to the somewhat 
"tiptoeing into the water" nature of the AMODE 64 support. I would open a 
ticket with IBM. Even if the storage pointed to by Rx is invalid the contents 
of Rx is always valid and potentially extremely useful, even necessary, in 
problem resolution. I think you have a reportable problem on its face value 
never mind what underlying problems there may be: "GPR's not formatted 
correctly in dump."

Are you XPLINK or standard linkage?

Any *possibility* that you have overlaid the stacked save areas in your code? 
R12:R15 = 404040... looks mighty suspicious to me.

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf 
Of Janet Graff
Sent: Thursday, August 25, 2016 12:12 PM
To: [email protected]
Subject: Re: Dump in 64 bit mode "Storage around GPR2 is invalid."

Here's an example

  Parameters, Registers, and Variables for Active Routines:                     
    main (DSA address 00000048082FEA20):                                        
      DOWNSTACK DSA                                                             
      Saved Registers:                                                          
        GPR0..... ****************  GPR1..... ****************  GPR2..... 
*****************  GPR3..... ****************
        GPR4..... 00000048082FEA20  GPR5..... BBBBBBBBBBBBBBBB  GPR6..... 
000000001AC0E618  GPR7..... 00000048082FF2C8
        GPR8..... 0000000000000005  GPR9..... 0000000000000000  GPR10.... 
0000000000000001  GPR11.... 0000000000000004
        GPR12.... 4040404040404040  GPR13.... 4040404040404040  GPR14.... 
4040404040404040  GPR15.... 4040404040404040

...

    GPREG STORAGE:                                                              
      Storage around GPR0  is invalid.                                          
      Storage around GPR1  is invalid.                                          
      Storage around GPR2  is invalid.                                          
      Storage around GPR3  is invalid.                                          
      Storage around GPR4 (00000048082FEA20)                                    
        +0800 00000048082FF220  00000048 082FF260 00000048 08600060  |......2-..

I have XGR'd GPR2 and GPR3 before the abend and GPR5 definitely does not 
contain a bunch Beees.

The program was compiled using xlc on the USS side.

The other issue I have is that the top of stack is not my main() so the PSW and 
"Storage dump near condition, beginning at location" is of CEEHDSP instead of 
main so I can't see what instruction in my program caused the abend.

I assume the registers are modified up stack which is why I can't see them.  
Can I get the dump at the actual abend location?

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

Reply via email to