Memory Access Violations

Memory access violations can be caused by many different things. To determine the cause, try the following:

  • If you have C routines linked into the runtime, try debugging them.

    If not, check for table overflow by compiling with the -Za option and running the program.

    See the User's Guide page 5-25 for details about both options above.

  • Look at the CHECK-USING configuration entry. If CHECK-USING =0 change to CHECK-USING=1. When set to "1" it you will receive an error message instead of a Memory access violation.

Another option is to use the ACUCOBOL debugger to run a file trace. To do this, type the following at the command line:

  runcbl -dle xxx pgm-name  [enter]
At the debugger split screen type:
  tf [enter]
  g [enter]

The results of your file trace will be directed to the file xxx. If the memory access violation occurred during an Input/Output, you may have a broken file. If the memory access violation occurred during loading, you may have a memory problem.

**FAX your file trace along with the above results to Acucorp Technical Support for further assistance.

Another cause can come from using the library routines C$TOUPPER AND C$TOLOWER first available in release 2.3 The calling sequence is:

  CALL "C$xxxxx" using field-to-change VALUE field-length.

Note that if you do not include the word VALUE, then a pointer gets passed but the library routine treats is as a number. Therefore, large quantities of memory get converted to lower or upper case!

Your Session will expire in 90 minutes
Notification will be shown in:
600 seconds