×
The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.
If you're really, really stuck, have a look at all the parameter lists.
Make sure the called programs' definitions match the calling programs.
It seems bizarre, but it can happen that mis-mapped parameters can
cause memory corruption and not just around a 'CALL' operation.
Bizarre, but quite understandable when you find the problem. I've seen this
happen a number of times
where:
field B100 in program A (a parm on a call to Prog B) is clobbered after a
call to program B
where:
the programmer "knows" that program B did NOT touch field field B100, so
program B is not suspect and not examined.
What can happen is that the length of field B100 was increased in Prog A but
since the programmer "knew" prog B didn't use that field, Prog B never got
changed.
Let's say field B100 in program A is 100 bytes long, but in prog B it is
still an original 80 bytes. If field B100 is in D spec (in both programs)
and is follow by a data field B20 20 bytes long (in both programs) and field
B20 is changed in program B, then data gets corruupted because the 20 bytes
of field B20 are addressing the same bytes in memory as bytes 81 to 100 of
field B100 in program A.
The nastiest time I've had with this involved a MODS where I changed the
number occurrances. Mine was harder to find because the failure was on a
customers machine where the customer forgot to make the change to the number
of occurrences in their copy of program B. Drove me nuts trying to figure
out why their application failed and my copy worked fine.
Program B was essentially a USER EXIT program which I didn't write.
Steve
As an Amazon Associate we earn from qualifying purchases.