Method using a computer for automatically instrumenting a computer program for dynamic debugging
First Claim
1. A method using a computer for automatically instrumenting a computer program for dynamic debugging, such a computer program comprising source code written in a programming language for executing instructions on said computer, said programming language having a grammar comprising operations having an operator and at least one operand and a set of rules for relating said operations to said at least one operand, comprising the steps of:
- providing said source code as a sequence of statements in a storage device to said computer, each such statement representing a desired instruction expressed in said programming language as one or more operations with at least one operand each;
separating each such statement into tokens representing either said operator or said at least one operand;
building a parse tree according to said set of rules using said tokens, said parse tree being a directed acyclic graph and comprising a plurality of nodes connected by paths organized into a hierarchy of parent nodes representing operators connected using said paths to children nodes representing operands of said operators;
providing additional nodes to said computer for instrumenting the computer program comprising instrumentation operations required to communicate runtime conditions to an error-checking engine, said additional nodes comprising a further plurality of nodes connected by paths organized into a hierarchy of parent nodes representing instrumentation operators connected using said paths to children nodes representing instrumentation operands of said instrumentation operators;
instrumenting said computer program by augmenting said parse tree with said additional nodes to create an instrumented parse tree for indicating that an error condition occurred in said computer program during execution using said instrumentation operations; and
generating object code from said instrumented parse tree and storing said object code in the storage device for later execution using the error-checking engine that indicates error conditions in said computer program.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for automatically instrumenting a computer program for dynamic debugging. Such a computer program comprising source code written in a programming language for executing instructions on the computer. The source code is provided as a sequence of statements in a storage device to the computer. Each of the statements are separated into tokens representing either an operator or at least one operand. A parse tree is built according to a set of rules using the set of tokens. The parse tree is instrumented to create an instrumented parse tree for indicating that an error condition occurred in the computer program during execution. Object code is generated from the instrumented parse tree and stored in a secondary storage device for later execution using an error-checking engine that indicates error conditions present in the computer program.
-
Citations
13 Claims
-
1. A method using a computer for automatically instrumenting a computer program for dynamic debugging, such a computer program comprising source code written in a programming language for executing instructions on said computer, said programming language having a grammar comprising operations having an operator and at least one operand and a set of rules for relating said operations to said at least one operand, comprising the steps of:
-
providing said source code as a sequence of statements in a storage device to said computer, each such statement representing a desired instruction expressed in said programming language as one or more operations with at least one operand each; separating each such statement into tokens representing either said operator or said at least one operand; building a parse tree according to said set of rules using said tokens, said parse tree being a directed acyclic graph and comprising a plurality of nodes connected by paths organized into a hierarchy of parent nodes representing operators connected using said paths to children nodes representing operands of said operators; providing additional nodes to said computer for instrumenting the computer program comprising instrumentation operations required to communicate runtime conditions to an error-checking engine, said additional nodes comprising a further plurality of nodes connected by paths organized into a hierarchy of parent nodes representing instrumentation operators connected using said paths to children nodes representing instrumentation operands of said instrumentation operators; instrumenting said computer program by augmenting said parse tree with said additional nodes to create an instrumented parse tree for indicating that an error condition occurred in said computer program during execution using said instrumentation operations; and generating object code from said instrumented parse tree and storing said object code in the storage device for later execution using the error-checking engine that indicates error conditions in said computer program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
Specification