Method and system for identifying instrumentation targets in computer programs related to logical transactions
First Claim
Patent Images
1. A method for identifying instructions within a program to include in a witness set for a transaction, the method comprising:
- constructing a monitor set that includes locations of instructions within the program;
initializing the witness set;
repeatedly selecting a next profile generated by executing the program to process the transaction a selected number of times, the selected number of times selected from non-negative integers including 0;
selecting a number of instructions from the next profile according to criteria based on execution counts associated with instructions in the next profile; and
using the selected number of instructions to modify the witness set.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for identifying sets of instructions within a computer program, execution of which serve as an indicator for processing of a transaction by the computer program and that together comprise a witness set. The witness set may be employed to monitor execution of the computer program and detect processing of the transaction. Witness sets are constructed by iteratively filtering an initial set of instructions based on profile data collected during execution of the computer program.
113 Citations
28 Claims
-
1. A method for identifying instructions within a program to include in a witness set for a transaction, the method comprising:
-
constructing a monitor set that includes locations of instructions within the program;
initializing the witness set;
repeatedly selecting a next profile generated by executing the program to process the transaction a selected number of times, the selected number of times selected from non-negative integers including 0;
selecting a number of instructions from the next profile according to criteria based on execution counts associated with instructions in the next profile; and
using the selected number of instructions to modify the witness set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
selecting locations of instructions associated with calling a number of library routines.
-
-
3. The method of claim 1 wherein constructing a monitor set that includes locations of instructions within the program further includes:
selecting locations of certain types of instructions.
-
4. The method of claim 1 wherein, when initialized, the witness set is empty.
-
5. The method of claim 1 wherein a next profile is generated by executing the program to process the transaction a certain number of times.
-
6. The method of claim 1 wherein a next profile is generated by executing the program to process the transaction under different conditions, during each execution processing the transaction a number of times.
-
7. The method of claim 1 wherein selecting a number of instructions from the next profile associated with particular counts further includes:
selecting instructions from the next profile associated with counts equal to the number of times that the transaction was processed during execution of the program, the selected instructions thus correlated with processing of the transaction.
-
8. The method of claim 1 wherein selecting a number of instructions from the next profile associated with particular counts further includes:
selecting instructions from the next profile associated with counts greater than zero, the transaction not processed during execution of the program and the selected instructions thus correlated with processing other than processing of the transaction.
-
9. The method of claim 1 wherein using the selected number of instructions to modify the witness set further includes:
including in the modified witness set only those instructions contained in the set intersection of the instructions currently included in the witness set and the selected number of instructions.
-
10. The method of claim 1 wherein using the selected number of instructions to modify the witness set further includes:
including in the modified witness set only those instructions contained in the set difference between the instructions currently included in the witness set and the selected number of instructions.
-
11. The method of claim 1 wherein using the selected number of instructions to modify the witness set further includes:
including in the modified witness set only those instructions contained in the set union of the instructions currently included in the witness set and the selected number of instructions.
-
12. The method of claim 1 wherein the instructions are machine instructions and the program is an executable program.
-
13. The method of claim 1 wherein the instructions are programming language statements.
-
14. The method of claim 1 wherein the locations are addresses of machine code instructions within an executable program.
-
15. The method of claim 1 wherein the locations are symbolic locations within a program.
-
16. The method of claim 1 further including:
-
evaluating the quality of the witness set;
when the witness set has a quality lower than a threshold quality, selecting a new monitor set;
initializing the witness set; and
identifying instructions within the program to include in the witness set by repeatedly generating a next profile by executing the program to process the transaction;
selecting a number of instructions from the next profile associated with particular counts;
using the selected number of instructions to modify the witness set.
-
-
17. The method of claim 16 wherein evaluating the quality of the witness set includes comparing the number of instructions within the witness set to a desired number of instructions.
-
18. The method of claim 16 wherein evaluating the quality of the witness set includes comparing the distribution of instructions of the witness set within the program to a desired distribution.
-
19. A witness set prepared by the method of claim 1 stored in a computer readable medium.
-
20. A witness set prepared by the method of claim 1 stored in a data structure within the memory of a computer.
-
21. Electronic signals embodied in a carrier wave that encode a representation of a witness set prepared by the method of claim 1.
-
22. A system for identifying instructions within a program that may compose a witness set, the system comprising:
-
a program;
a computer on which the program is executed;
a monitor set containing the locations of instructions within the program;
a monitor that monitors execution of the instructions at the locations of instructions contained in the monitor set to generate profiles;
a witness set; and
a witness set generator that repeatedly executes the program, extracts instructions from profiles generated by the monitor, and modifies the witness set by including in the modified witness set instructions resulting from set operations performed on the witness set and the instructions extracted from the profiles. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
Specification