System and method for preventing software errors
First Claim
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.
6 Assignments
0 Petitions
Accused Products
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.
-
Citations
24 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. 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. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
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. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
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. - View Dependent Claims (21, 22, 23, 24)
Specification