Tools and techniques for instrumenting interfaces of units of a software program
First Claim
1. A computer-readable medium having stored thereon computer program instructions for creating an interface wrapper which associates an interface with a unit identity of a unit of a software program, wherein the software program comprises plural units, and wherein one of the plural units exposes the interface, the interface wrapper comprising:
- a first data field having data representing a reference to instrumentation for the interface, the reference to instrumentation comprising a pointer to a table comprising;
a pointer to an instrumentation function of the interface, andat least one other pointer to another instrumentation function;
a second data field having data representing a reference to the interface as a whole of the unit of the software program that exposes the interface;
a third data field having data representing unit identity of the unit of the software program that exposes the interface;
a fourth data field having data for use by the instrumentation; and
the computer-readable medium further having stored thereon computer program instructions comprising;
instructions for intercepting a call to a method of the interface from a client;
instructions for using at least the first data field data to invoke the instrumentation function of the interface, andinstructions for using at least the second data field data to call the method of the interface.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer readable medium contains a data structure, which, in some embodiments, is an interface wrapper. The interface wrapper stores information about the interface such as a first data field that contains a reference to instrumentation, a second data field that contains data which represents a reference to an interface of a software program, and a third data field which contains data representing an identity of the unit of software. When a client unit calls a member function of the interface, the interface wrapper intercepts the call and invokes the instrumentation.
114 Citations
34 Claims
-
1. A computer-readable medium having stored thereon computer program instructions for creating an interface wrapper which associates an interface with a unit identity of a unit of a software program, wherein the software program comprises plural units, and wherein one of the plural units exposes the interface, the interface wrapper comprising:
-
a first data field having data representing a reference to instrumentation for the interface, the reference to instrumentation comprising a pointer to a table comprising; a pointer to an instrumentation function of the interface, and at least one other pointer to another instrumentation function; a second data field having data representing a reference to the interface as a whole of the unit of the software program that exposes the interface; a third data field having data representing unit identity of the unit of the software program that exposes the interface; a fourth data field having data for use by the instrumentation; and the computer-readable medium further having stored thereon computer program instructions comprising; instructions for intercepting a call to a method of the interface from a client; instructions for using at least the first data field data to invoke the instrumentation function of the interface, and instructions for using at least the second data field data to call the method of the interface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer-readable medium having stored thereon computer program instructions for creating an interface wrapper which associates an interface with a unit identity of a unit of a software program, wherein the software program comprises plural units, and wherein one of the plural units exposes the interface, the interface wrapper comprising:
-
a first data field having data representing a reference to instrumentation for the interface; a second data field having data representing a reference to the interface as a whole of the unit of the software program that exposes the interface, the data comprising a pointer to a table, the table comprising a pointer to a method of the interface and at least one other pointer to another method of the interface; a third data field having data representing unit identity of the unit of the software program that exposes the interface; a fourth data field having data for use by the instrumentation; and the computer-readable medium further having stored thereon computer program instructions comprising; instructions for intercepting a call to the method of the interface from a client; instructions for using at least the first data field data to invoke an instrumentation function of the interface, and instructions for using at least the second data field data to call the method of the interface. - View Dependent Claims (16, 17)
-
-
18. A method of processing data stored in an interface wrapper in computer memory, the method comprising:
in response to a client invocation to a method of an interface of a unit of a software program comprising plural units; intercepting the invocation to the method of the interface; accessing a first data field in the interface wrapper, the first data field having data representing a reference to instrumentation of the interface; accessing a second data field in the interface wrapper, the second data field having data representing a reference to the interface as a whole of the unit of the software program, the reference to the interface comprising a pointer to a table, the table comprising a pointer to the method of the interface and at least one other pointer to another method of the interface; using an instrumentation function of the instrumentation, accessing a third data field in the interface wrapper, the third data field having data representing an identity of the unit of the software program that exposes the interface; processing parameters of the invocation to the method of the interface using data in a fourth data field in the interface wrapper, the fourth data field having data for use by the instrumentation; using at least the second data field data to invoke the method of the interface; processing return parameters of the method of the interface; and returning control to the client. - View Dependent Claims (19)
-
20. A method of processing data stored in an interface wrapper in computer memory, the method comprising:
in response to a client invocation to a method of an interface of a unit of a software program comprising plural units; intercepting the invocation to the method of the interface; accessing a first data field in the interface wrapper, the first data field having data representing a reference to instrumentation of the interface, the reference to instrumentation comprising a pointer to a table comprising; a pointer to an instrumentation function of the interface, and at least one other pointer to another instrumentation function; accessing a second data field in the interface wrapper, the second data field having data representing a reference to the interface as a whole of the unit of the software program; using the instrumentation function of the instrumentation, accessing a third data field in the interface wrapper, the third data field having data representing an identity of the unit of the software program that exposes the interface; processing parameters of the invocation to the method of the interface using data in a fourth data field in the interface wrapper, the fourth data field having data for use by the instrumentation; using at least the second data field data to invoke the method of the interface; processing return parameters of the method of the interface; and returning control to the client. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
32. A computer system comprising:
-
means for creating an interface wrapping data structure in memory associated with the computer system, the data structure comprising; a first data field having data representing a reference to instrumentation for an interface, a second data field having data representing a reference to the interface as a whole of a unit of a software program, the reference to the interface comprising a pointer to a table, the table comprising a pointer to a method of the interface and at least one other pointer to another method of the interface, wherein the software program comprises plural units and wherein one of the plural units exposes the interface, a third data field having data representing an identity of the unit of the software program that exposes the interface, a fourth data field having data for use by the instrumentation; and means for intercepting a call from a client to the method of the interface; means for using at least the data in the first field to access an instrumentation function of the instrumentation; means for using at least the data in the second data field to call the method of the interface; and means for returning control to the client. - View Dependent Claims (33)
-
-
34. A computer system comprising:
-
means for creating an interface wrapping data structure in memory associated with the computer system, the data structure comprising; a first data field having data representing a reference to instrumentation for an interface, the reference to instrumentation comprising a pointer to a table comprising; a pointer to the instrumentation function of the interface, and at least one other pointer to another instrumentation function, a second data field having data representing a reference to the interface as a whole of a unit of a software program, wherein the software program comprises plural units and wherein one of the plural units exposes the interface, a third data field having data representing an identity of the unit of the software program that exposes the interface, a fourth data field having data for use by the instrumentation; and means for intercepting a call from a client to a method of the interface; means for using at least the data in the first field to access an instrumentation function of the instrumentation; means for using at least the data in the second data field to call the method of the interface; and means for returning control to the client.
-
Specification