Method of debugging a software system
First Claim
1. A computer implemented method of debugging a software system, the software system comprising software components, the method comprising:
- enforcing each of the software components to use a common framework for storing execution states;
storing execution states of the software system in a first format, wherein each of the execution states corresponds to one of the software components at a corresponding time instance,wherein the common framework is designed to store the execution states in the first format, the first format including a first field identifying the specific one of the software components storing a corresponding execution state,wherein the common framework stores the execution states in a plurality of log files, each log file corresponding to a software component;
receiving, from a user, an indication to debug the software system, wherein the indication specifies a time instance;
determining the occurrence of a first error in the software system by inspecting at least one of the stored execution states corresponding to time instances prior to the time instance, wherein the first error is determined based on the stored execution states of at least two different software components,wherein the determining comprises;
generating a set of execution characteristics corresponding to each of the plurality of time instances based on the plurality of execution states;
storing the set of execution characteristics for each of the plurality of time instances in a database; and
querying the set of execution characteristics maintained in the database to determine the occurrence of the first error in the software system,wherein the generating further comprises;
parsing each of the execution states stored in the first format to identify corresponding values for a set of fields,wherein the parsing comprises using a common parser to parse all of the plurality of log files to determine the set of execution characteristics of the software system; and
creating a first subset of execution characteristics based on the values for the set of fields identified for an execution state, wherein the first subset of execution characteristics is contained in the set of execution characteristics for a corresponding time instance;
maintaining a knowledge base specifying a plurality of sets of recommendations for a corresponding set of errors, wherein the set of errors includes the first error;
identifying a first set of recommendations for fixing the first error,wherein the identifying further comprises;
searching, after the determining the first error, the knowledge base for recommendations for the first error; and
finding the first set of recommendations in the plurality of sets of recommendations corresponding to the first error; and
providing, to the user, the first error and the first set of recommendations to enable the user to debug the software system,wherein the determining, the identifying and the providing are performed in response to the receiving the indication to debug the software system.
9 Assignments
0 Petitions
Accused Products
Abstract
A method, system, and a computer program product for debugging a software system. An aspect of the present invention provides a user with the combination of an error determined in the software system and a set of recommendations for fixing the error, thereby enabling the user to debug the software system more efficiently. In one embodiment, the error is determined by inspecting the execution states of the software system at different time instances prior to receiving a debug indication from the user. The set of recommendations for fixing the error is identified by searching a knowledge base that stores the recommendations (e.g., possible solutions, suggestions, and workarounds) for each of the errors.
-
Citations
11 Claims
-
1. A computer implemented method of debugging a software system, the software system comprising software components, the method comprising:
-
enforcing each of the software components to use a common framework for storing execution states; storing execution states of the software system in a first format, wherein each of the execution states corresponds to one of the software components at a corresponding time instance, wherein the common framework is designed to store the execution states in the first format, the first format including a first field identifying the specific one of the software components storing a corresponding execution state, wherein the common framework stores the execution states in a plurality of log files, each log file corresponding to a software component; receiving, from a user, an indication to debug the software system, wherein the indication specifies a time instance; determining the occurrence of a first error in the software system by inspecting at least one of the stored execution states corresponding to time instances prior to the time instance, wherein the first error is determined based on the stored execution states of at least two different software components, wherein the determining comprises; generating a set of execution characteristics corresponding to each of the plurality of time instances based on the plurality of execution states; storing the set of execution characteristics for each of the plurality of time instances in a database; and querying the set of execution characteristics maintained in the database to determine the occurrence of the first error in the software system, wherein the generating further comprises; parsing each of the execution states stored in the first format to identify corresponding values for a set of fields, wherein the parsing comprises using a common parser to parse all of the plurality of log files to determine the set of execution characteristics of the software system; and creating a first subset of execution characteristics based on the values for the set of fields identified for an execution state, wherein the first subset of execution characteristics is contained in the set of execution characteristics for a corresponding time instance; maintaining a knowledge base specifying a plurality of sets of recommendations for a corresponding set of errors, wherein the set of errors includes the first error; identifying a first set of recommendations for fixing the first error, wherein the identifying further comprises; searching, after the determining the first error, the knowledge base for recommendations for the first error; and finding the first set of recommendations in the plurality of sets of recommendations corresponding to the first error; and providing, to the user, the first error and the first set of recommendations to enable the user to debug the software system, wherein the determining, the identifying and the providing are performed in response to the receiving the indication to debug the software system. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory machine readable medium storing one or more sequences of instructions for causing a system to debug a software system, the software system comprising software components, wherein execution of the one or more sequences of instructions by one or more processors contained in the system causes the system to perform the actions of:
-
storing execution states of the software system, wherein each of the execution states corresponds to one of the plurality of software components at a corresponding time instance; maintaining a knowledge base specifying a plurality of recommendations for fixing a set of errors; receiving, from a user, an indication to debug the software system, wherein the indication specifies a time instance; determining the occurrence of a first error in the software system by inspecting a subset of the execution states corresponding to time instances prior to the time instance, wherein the first error is determined based on the stored execution states of at least two different software components; identifying, in the knowledge base, a first set of recommendations for fixing the first error, wherein the first set of recommendations is contained in the plurality of recommendations; and providing, to the user, the first error and the first set of recommendations to enable the user to debug the software system, wherein the determining, the identifying and the providing are performed in response to the receiving the indication to debug the software system wherein the knowledge base comprises a error message repository, a set of product release notes, a support knowledge base and a defect tracking system, wherein the recommendations include possible solutions, suggestions, and workarounds for fixing the first error. - View Dependent Claims (8, 9, 10)
-
-
11. A computing system comprising:
-
a plurality of systems to execute software components forming a software system, wherein the software system is designed to store the execution states of the software components corresponding to different time instances, wherein the software system stores in the one or more files, each of the execution states according to a first format; a database to maintain data in a second format, wherein the second format is different from the first format; a user system to enable a user to send an indication to debug the software system; and at least one processor executing instructions retrieved from a memory to operate as a debug tool, the debug tool to receive the indication at a time instance and in response operable to; determine the occurrence of a first error in the software system by inspecting a subset of the execution states corresponding to a plurality of time instances prior to the time instance, wherein the debug tool determines the first error based on the stored execution states of at least two different software components; identify a first set of recommendations for fixing the first error; and provide, to the user, the first error and the first set of recommendations to enable the user to debug the software system, wherein the debug tool to determine the first error is operable to; parse each of the execution states stored in the first format to identify corresponding values for a set of fields; generate a set of execution characteristics corresponding to each of the time instances based on the values for the set of fields identified for an execution state; store the set of execution characteristics for each of the time instances in the database in the second format; and query the set of execution characteristics maintained in the second format in the database to determine the occurrence of the first error in the software system; and a knowledge base maintaining a plurality of recommendations for fixing a set of errors including the first error, wherein each of the set of errors is uniquely identified in the software system by a corresponding system error identifier, wherein the knowledge base maintains each of the plurality of recommendations associated with the system error identifier of a corresponding error, wherein the first set of recommendations is maintained associated with a first system error identifier of the first error, wherein the debug tool identifies the first set of recommendations in the plurality of sets of recommendations based on matching the first system error identifier of the first error, wherein the knowledge base is stored in a non-volatile storage separate from one or more files in which the execution states are stored.
-
Specification