Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Pls. help "Heap storage control info. damaged"

Status
Not open for further replies.

manojgovindan

Programmer
Dec 26, 2002
7
0
0
US
Hi All,
Mine is an IMS program and I get a 4038 abend at the end of the program, where it calls the ACR balancing routine. This abend happens inside the balancing sub routine and not in my program.

This is the message I get :

CEE3703I In HANC Control Block, the Eye Catcher is damaged.
CEE3704I Expected data at 1A333000 : HANC.
CEE0802C Heap storage control information was damaged.

I'm not able to use the HEAPCHK=ON in the JCL and check the heap allocation. Any help is much appreciated!

Also, when I remove the balancing routine, my program works fine.

Thanks,
Manoj.
 
Looks like the balancing routine is trashing heap storage. Is the balancing routine LE-compatible?
 
Hi 3gm,
Sorry for the delay in reply. Actually the balancing routine is a 3rd party vendor provided, only load available program and ours is a NON LE version.

I think the pgm is to definetly abend if the main program is run with any of the LE options then.. is this not true?
is there any other way I can fix this problem?

I also believe that this problem can be attributed to any index out of range happenning in the main program, which might affect the memory area of the balancing subroutine.
How do I exactly trap the index out of bound problem after I recompile my pgm with the SSRANGE option?

Thanks,
Manoj.
 
Well, the routine doesn't have to be LE-compatible if you call it from COBOL and it's assembler, so that would probably OK. If the routine is COBOL, then you MAY need to get an LE-compatible version; I'm not sure on that one. I assume the balancing routine is statically called (i.e. is link edited with the calling routine)? If it's dynamically called and was link edited with the non-LE runtime modules, that could cause problems.

As for SSRANGE, I'd include the TEST(NONE,SYM) option as well. That way, if a subscript or reference modification is out of range, the program will abend and you'll get a nicely formatted dump of COBOL storage including the line # of the statement where the out of range condition occurred. You don't have to do anything special, just compile the program with those options and then run it.

Good luck.

Glenn
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top