Rich writes:
> Kish writes:
> > On one of my HP-3000 - Series 70 RELEASE: G.2P.00 MPE V HP32033
> > G.09.00 USER VERSION: G.2P.00 following error occurs intermittently
> > while running a COBOL program.
> >
> > **** DESIGNATED CHARACTER POSITION(S) OUTSIDE STRING (PASCERR
> > 652)
> >
> > *** STACK DISPLAY ***
> >
> > S=011222 DL=17765 0 Z=014552
> > Q=011226 P=002353 LCST= S067 STAT=U,1,1,L,0,0,CCE X=000006
> >
> > Q=011115 P=000234 LCST= P017 STAT=U,1,1,L,0,0,CCG X=002063
> > Q=010675 P=005636 LCST= 005 STAT=U,1,1,L,0,0,CCG X=002063
> >
>
> The Pascal error messages are documented in the manual. If you are
> lucky enough to have one, it says "The specified offset is greater
> than the current length of the string". Usually this means that
> you're trying to set s[i] to some character and the length of the
> lengh(s) < i. You usually need to intialize your string to blanks
> (or whatever's appropriate) before you index into the middle of it.
Even better, the Pascal runtime errors are very nicely documented
in comments in the file PASCAT.PUB.SYS. I wish all the message
catalogs were as as this.
Since Kish said it was a COBOL program that generated the error,
and the stack trace indicates that the problem is probably in
SL.PUB, there are probably subroutines written in Pascal/V that
reside in SL.PUB, which is where one would want to look for the
routine that isn't working right. The address %17.234 should be
inside the routine in the SL with the problem, so:
:SEGMENTER
-SL SL.PUB
-LISTSL 17
Should show you the code module that is generating the error.
It's quite possible that the COBOL program is passing bad data (or
more data than it was designed to handle) to the Pascal routine.
G.
|