IR code instrumentation
First Claim
Patent Images
1. A method of instrumenting a computer program, comprising:
- (a) examining an initial intermediate representation of the program;
(b) selecting portions of the initial intermediate representation for instrumentation; and
(c) instrumenting the portions, wherein selecting the portions includes choosing portions of the initial intermediate representation corresponding to pointer arithmetic operations, operations that reads memory locations, operations that change memory locations, and operations that causes program variables to become defined or undefined within the program.
8 Assignments
0 Petitions
Accused Products
Abstract
Instrumenting a computer program includes examining an initial intermediate representation of the program, selecting portions of the initial intermediate representation for instrumentation, and instrumenting the portions. Selecting the portions may include choosing portions of the initial intermediate representation corresponding to pointer arithmetic operations, operations that reads memory locations, operations that change memory locations, and/or operations that causes program variables to become defined or undefined within the program. Instrumenting the portions may include adding run time code that provides a user with an indication when a run time error occurs.
91 Citations
17 Claims
-
1. A method of instrumenting a computer program, comprising:
-
(a) examining an initial intermediate representation of the program; (b) selecting portions of the initial intermediate representation for instrumentation; and (c) instrumenting the portions, wherein selecting the portions includes choosing portions of the initial intermediate representation corresponding to pointer arithmetic operations, operations that reads memory locations, operations that change memory locations, and operations that causes program variables to become defined or undefined within the program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of instrumenting a computer program, comprising:
-
(a) examining an initial intermediate representation of the program; (b) creating an intermediate representation tree of nodes corresponding to intermediate representation operations and operands of the initial intermediate representation, the nodes being interconnected according to a logical relationship between the operators and the operands; (c) selecting portions of the initial intermediate representation for instrumentation; (d) instrumenting the portions by modifying the intermediate representation tree with run time instrumentation code; and (e) using the intermediate representation tree to create an instrumented intermediate representation that is structurally equivalent to the initial intermediate representation. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A computer program instrumenter, comprising:
-
(a) examining means for examining an initial intermediate representation of the program; (b) creating means, coupled to the examining means, for creating an intermediate representation tree of nodes corresponding to intermediate representation operations and operands of the initial intermediate representation, the nodes being interconnected according to a logical relationship between the operators and the operands; (c) selecting means, coupled to the examining means, for selecting portions of the initial intermediate representation for instrumentation; (d) instrumenting means, coupled to the creating means and the selecting means, for instrumenting the portions by modifying the intermediate representation tree with run time instrumentation code; and (e) means, coupled to the instrumenting means, for using the intermediate representation tree to create an instrumented intermediate representation that is structurally equivalent to the initial intermediate representation. - View Dependent Claims (16, 17)
-
Specification