Browse Prior Art Database

Program Storage Overlay Detection

IP.com Disclosure Number: IPCOM000111682D
Original Publication Date: 1994-Mar-01
Included in the Prior Art Database: 2005-Mar-26
Document File: 4 page(s) / 168K

Publishing Venue

IBM

Related People

Cobb, PC: AUTHOR [+6]

Abstract

Described is a method of detecting and handling program storage overlays occurring in application programs. Storage overlays detected will have the programming environment preserved and captured so that the program that caused the storage overlay can be identified. This method utilizes storage packets, each prefixed with information that will be verified each time the storage is used by a program and when it is freed at the end of program usage. If a storage overlay occurs across a partition or slice of program storage, verification of this prefixed information will fail and the program storage can be immediately captured for debug purposes.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 27% of the total text.

Program Storage Overlay Detection

      Described is a method of detecting and handling program storage
overlays occurring in application programs.  Storage overlays
detected will have the programming environment preserved and captured
so that the program that caused the storage overlay can be
identified.  This method utilizes storage packets, each prefixed with
information that will be verified each time the storage is used by a
program and when it is freed at the end of program usage.  If a
storage overlay occurs across a partition or slice of program
storage, verification of this prefixed information will fail and the
program storage can be immediately captured for debug purposes.

      This method utilizes storage packets which are allocated
storage prefixed with allocation information used to detect storage
overlays.  The following diagram illustrates the format of a single
storage packet.

  +-------+-------+---------+---------+-------------------------+---------+
  |       |       | storage |last user|                         | storage |
  |length1|length2|requester|of storg.|program storage . . .    |requester|
  | (x+8) | (x+8) |   ID    |   ID    |                         |   ID    |
  +-------+-------+---------+---------+-------------------------+---------+
  |       |       |         |         |                         |         |
  0       4       8        16        24                         x        x+8

  Illustration of the format of a requested block of storage


Field descriptions:

o   length1  - length of the storage packet including this field
    _______

o   length2  - same value as length1
    _______                  _______

o   storage requester ID  - unique ID of the caller requesting
    ____________________
    working storage

o   last user of storg.ID  - unique ID of the last program segment
    _____________________
    that wrote into the storage packet

o   program storage  - the area that is useable by the program
    _______________
    segment for storing program data

o   storage requester ID  - unique ID of the caller requesting
    ____________________
    working storage

      Storage packets are created and managed for a program by a
component known as the Storage Manager.  This routine has the
following responsibilities:

o   construct storage packets

o   free storage packets

o   validate a storage packet

Details of each of these Storage Manager functions are described.

      When a program requires storage for operation, Storage Manager
is called to perform the allocation.  On this call is passed two
pieces of information:

o   length of storage required

o   an up to 8-character identifier that uniquely identif...