System and method for troubleshooting runtime software problems using application learning
First Claim
1. A method for analyzing execution traces of a computer program, comprising:
- receiving a set of identifiers of situation classes as parameters;
accumulating execution patterns during execution of the computer program, the computer program being executed in accordance with the set of identifiers of situation classes;
associating at least some of the execution patterns with corresponding situation classes of the set of identifiers of situation classes to produce classified execution patterns;
storing the classified execution patterns in a database;
identifying a diagnostic-mode execution pattern while executing the computer program in a diagnostic mode;
identifying, using a computer processor, a classified execution pattern that matches the identified diagnostic-mode execution pattern to identify a situation class corresponding to the execution of the program in the diagnostic mode; and
providing an indication of the corresponding situation class, whereby the indication allows a user to assess abnormalities in the execution of the program in the diagnostic mode.
7 Assignments
0 Petitions
Accused Products
Abstract
Analysis of execution traces to identify execution problems is described. Analysis of the execution trace allows the user to detect application execution patterns. Each pattern represents a sequence of operations performed by the application. Some patterns correspond to normal execution of the application. Some patterns correspond to typical operations such as file opening, file saving, site browsing, mail sending. Diagnostic classes include patterns associated with certain malfunctions. In one embodiment, the system includes a learning mode wherein the system accumulates patterns belonging to different classes and stores them in a pattern database. In one embodiment, the system also includes a recognition mode where the system matches the trace against the pattern database and assigns trace regions to specific classes such as normal, abnormal, classes of specific problems or user activities, etc.
-
Citations
38 Claims
-
1. A method for analyzing execution traces of a computer program, comprising:
-
receiving a set of identifiers of situation classes as parameters; accumulating execution patterns during execution of the computer program, the computer program being executed in accordance with the set of identifiers of situation classes; associating at least some of the execution patterns with corresponding situation classes of the set of identifiers of situation classes to produce classified execution patterns; storing the classified execution patterns in a database; identifying a diagnostic-mode execution pattern while executing the computer program in a diagnostic mode; identifying, using a computer processor, a classified execution pattern that matches the identified diagnostic-mode execution pattern to identify a situation class corresponding to the execution of the program in the diagnostic mode; and providing an indication of the corresponding situation class, whereby the indication allows a user to assess abnormalities in the execution of the program in the diagnostic mode. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of analyzing execution traces of a computer program, comprising:
-
receiving a set of identifiers of situation classes as parameters; accumulating execution patterns for an application during execution of the computer program in accordance with the set of identifiers of situation classes; classifying the execution patterns by the set of identifiers of situation classes to produce classified execution patterns; tracing execution patterns of a copy of said program being diagnosed; comparing, using a computer processor, the traced execution patterns to the classified execution patterns to produce matching traced execution patterns and matching classified execution patterns; identifying trace regions corresponding to the matching traced execution patterns; and displaying trace regions according to a likelihood that said trace regions indicate improper execution of said copy of said program, wherein the likelihood is determined based at least in part on situation classes associated with the matching classified execution patterns. - View Dependent Claims (8)
-
-
9. A system for analyzing execution trace data of a computer program, comprising:
-
a processor configured to operate in a learning mode wherein the processor maintains a user-defined number of execution classes as parameters, accumulates patterns of operations during execution of the computer program in accordance with the user-defined number of execution classes, and associates one of the user-defined number of execution classes with each of said patterns, said patterns stored in a pattern database; and wherein said processor is further configured to operate in a recognition mode wherein the processor matches execution trace information against said patterns to identify one or more trace regions, the trace information being collected while executing a copy of the computer program during the recognition mode, the processor further associating each of said trace regions with an execution class corresponding to an execution class associated with a pattern. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method for application learning, comprising:
-
storing one or more user-defined execution categories as parameters; collecting, using a computer processor, a learning mode trace log of an application, during execution of the application according to the execution classes, to produce trace data; separating said trace data into logical streams; generating patterns from said logical streams; and storing said patterns in a pattern database, wherein each of the user-defined execution categories is associated with at least one of the stored patterns in the pattern database, wherein the pattern database is configured to provide information sufficient to enable a processor to identify a pattern in a diagnostic mode trace log of the application being diagnosed that matches a pattern stored in the pattern database, and determine an execution category associated with the pattern in the pattern database. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A computer-implemented method for evaluating execution trace data, comprising:
-
separating trace data into one or more logical streams; receiving a set of user-defined situation class identifiers that identify situation classes in which a computer program may be executed; filling a stream history array from at least a portion of data in a first logical stream to define a pattern, the data in the first logical stream being generated based on execution of the computer program in accordance with one of the situation classes; adding said pattern to a pattern database as a new pattern if said pattern does not already not exist in said pattern database; and associating with said new pattern the user-defined situation class identifier corresponding to the situation class in accordance with which the computer program was executed, wherein the pattern database is configured to provide information sufficient to enable a processor to identify a pattern in a trace log of a copy of the computer program being diagnosed that matches a pattern stored in the pattern database, and determine a user-defined situation class identifier associated with the pattern in the pattern database. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
-
28. A method for analyzing execution trace information of a computer program being diagnosed, comprising:
-
maintaining a pattern database comprising stored patterns gathered during execution of the computer program during a learning mode in accordance with an arbitrary number of situation classes, the situation classes being user-defined and passed as a parameter, wherein the stored patterns are associated with corresponding situation classes based on the execution of the computer program; separating trace data gathered from the computer program being diagnosed into one or more logical streams; identifying a match between at least a portion of data in a first logical stream and a stored pattern in the pattern database; and displaying a situation class associated in the pattern database with said stored pattern in connection with said at least a portion of data. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
Specification