US6990612B2

System and method for preventing software errors

Summary by NHIP

Software Error Prevention System

The system prevents errors by generating and storing verification values within program blocks. It executes code only if the stored value matches a runtime calculation, otherwise generating an error message.

Claim Score by NHIP

Read claim 8, the broadest

Abstract

The present invention provides systems and methods for preventing software errors caused by address range or alignment errors. In architecture, a representative system includes a compiler that parses a program and further comprises a logic that generates a verification value for a block of code in the program, a logic that stores the verification value in the block of code, and a logic that inserts verification value instruction code into the block of code. The present invention can also be viewed as a method for preventing software errors in a program. A representative method operates by generating a verification value for a block of code in the program, and storing the verification value in the block of code. During execution of the program, a runtime verification value is generated for the block of code, and the block of code is executed if the verification value equals the runtime verification value, and generates an error message if the verification value does not equals the runtime verification value.

US6990612B2, drawing sheet 1
Sheet 1 of 8

Term

Term ended

Expired 17 October 2023, 2.9 years ago.

  1. Priority and filed
  2. Granted
  3. Expired
  4. Today

24 claims: 4 independent, 20 dependent

  1. 1
    A method for preventing software errors in a program, said method comprising steps of:generating a verification value for a block of code in the program, the block of code corresponding to one of a statically allocated object, a procedure call and a function call;storing the verification value in the block of code;computing a runtime verification value for the block of code during execution of the program;executing the block of code if the verification value equals the runtime verification value;and generating an error message if the verification value does not equal the runtime verification value.
  2. 8
    Broadest claimClaim Score 71, broad(NHIP)A system for preventing software errors in a program, comprising:means for generating a verification value for a block of code in the program, the block of code corresponding to one of a statically allocated object, a procedure call and a function call;means for storing the verification value in the block of code;and means for computing a runtime verification value for the block of code during execution of the program, wherein the computing means executes the block of code if the verification value equals the runtime verification value, and generates an error message if the verification value does not equal the runtime verification value.
  3. 14
    A computer readable medium stored on a computer readable memory and executing on a computer for preventing software errors in a program, comprising:logic for generating a verification value for a block of code in the program, the block of code corresponding to one of a statically allocated object, a procedure call and a function call;logic for storing the verification value in the block of code;and logic for computing a runtime verification value for the block of code during execution of the program, wherein the computing logic executes the block of code if the verification value equals the runtime verification value, and generates an error message if the verification value does not equal the runtime verification value.
  4. 20
    A system with computer readable medium stored on a computer readable memory and executing on a computer for preventing software errors in a program, comprising:a compiler that parses a program, wherein the compiler further comprises: logic that generates a verification value for a block of code in the program, the block of code corresponding to one of a statically allocated object, a procedure call and a function call;logic that stores the verification value in the block of code;and logic that inserts verification value instruction code into the block of code.