Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Mirror Table Mapping of Software Programs

IP.com Disclosure Number: IPCOM000106548D
Original Publication Date: 1993-Nov-01
Included in the Prior Art Database: 2005-Mar-21
Document File: 2 page(s) / 65K

Publishing Venue

IBM

Related People

Balfour, LC: AUTHOR [+2]

Abstract

A program is disclosed that utilizes an executable table called a "Mirror Table" to selectively map or analyze a Software Program. The Mirror Table is the same length as the "mirrored" program, but consists of a series of branch instructions. These allow various uses such as branch path analysis, code coverage analysis, error injection, "timing window" simulation, "re-entrant" ability checking, etc. Some usages require either a "captive" copy of the object code being analyzed, or a pointer to a productive copy somewhere in the system.

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

Mirror Table Mapping of Software Programs

      A program is disclosed that utilizes an executable table called
a "Mirror Table" to selectively map or analyze a Software Program.
The Mirror Table is the same length as the "mirrored" program, but
consists of a series of branch instructions.  These allow various
uses such as branch path analysis, code coverage analysis, error
injection, "timing window" simulation, "re-entrant" ability checking,
etc. Some usages require either a "captive" copy of the object code
being analyzed, or a pointer to a productive copy somewhere in the
system.

      The branch type instructions in the Mirror Table have the
ability to both exit to some specific logic location based on the
contents of one of its Registers, and to tell where it was in the
table in another of its Registers.  The Table has been patterned to
define not only the instruction boundaries of the "original program"
and Data Areas, but to also define which instructions are the
beginning of Execution Ranges.  An Execution Range is one or more
consecutive instructions that are ALWAYS executed to completion any
time the first one is entered.  These kernels of logic have only one
possible execution path and do not change the program state,
synchronize storage access, or cause non-sequential instruction
execution.  Any instruction that does these things would be in an
Execution Range by itself.

      To perform different tasks with the Mirror Table, one merely
alters the contents and/or register number assigned various parts of
the Table, then simply executes the Mirror Table.  It thus
temporarily exits from the Table at desired points, performs the
required analysis, then returns to the Tab...