flow and module level debugging in a system. An applicable filter-set comprising at least one user defined flow and at least one module corresponding to the at least one user defined flow are identified. An incoming message flow is then tagged with information of the applicable filter-set. Further, the at least one module is detected for debugging corresponding to the user defined flow based on the tagged information of the incoming message flow. log statements are then generated for the at least one module detected for debugging.

Patent
   8561025
Priority
Mar 31 2008
Filed
Mar 31 2008
Issued
Oct 15 2013
Expiry
Oct 14 2031
Extension
1292 days
Assg.orig
Entity
Large
9
26
window open
1. A computer-implemented method for generating log statements comprising:
identifying, by a computer, an applicable filter-set comprising at least one user defined flow and at least one module for debugging corresponding to the at least one user defined flow;
tagging an incoming message flow with information of the applicable filter set;
detecting the at least one module for debugging corresponding to the at least one user defined flow based on the tagging; and
storing log statements for the at least one module for debugging, comprising, for a severity level specified by a user, creating a filter record for the at least one module corresponding to the at least one user defined flow; and
for the severity level specified by the user, creating the filter record for the at least one module corresponding to the at least one user defined flow,
wherein a bit in the filter record is set for the at least one user defined flow;
creating, prior to identifying, an applicable filter-set comprising the at least one user defined flow, wherein a bit is set in the applicable filter-set for the at least one user defined flow;
comparing the applicable filter-set tagged with the incoming message flow with the filter record to check if at least one bit is set in the applicable filter-set and in the filter record at a same bit position; and
generating a log statement if the at least one bit is set in the applicable filter-set and in the filter record at the same bit position.
10. A non-transitory machine-readable medium product comprising instructions operable to cause a programmable processor to perform a method, the method comprising:
identifying, by a computer, an applicable filter-set comprising at least one user defined flow and at least one module corresponding to the at least one user defined flow;
tagging an incoming message flow with information of the applicable filter set;
detecting the at least one module for debugging corresponding to the at least one user defined flow based on the tagging;
and generating log statements for the at least one module detected for debugging corresponding to the at least one user defined flow and the tagged information of the incoming message flow, comprising, for a severity level specified by a user, creating a filter record for the at least one module corresponding to the at least one user defined flow;
for the severity level specified by the user, creating the filter record for the at least one module corresponding to the at least one user defined flow,
wherein a bit in the filter record is set for the at least one user defined flow;
creating, prior to identifying, an applicable filter-set comprising the at least one user defined flow, wherein a bit is set in the applicable filter-set for the at least one user defined flow;
comparing the applicable filter-set tagged with the incoming message flow with the filter record to check if at least one bit is set in the applicable filter-set and in the filter record at a same bit position; and
generating a log statement if the at least one bit is set in the applicable filter-set and in the filter record at the same bit position.
6. An information processing system, implemented at least partially in hardware, comprising:
a filter record creating module to create a filter record for at least one module corresponding to at least one user defined flow for a severity level, wherein a bit in the filter record is set for the at least one user defined flow;
an applicable filter-set creating module to create an applicable filter-set comprising the least one user defined flow, wherein a bit is set in the applicable filter-set for the at least one user defined flow;
a tagging module to tag an incoming message flow with information of the applicable filter-set;
a comparing module to compare the applicable filter-set tagged with the incoming message flow with the filter record to check if at least one bit is set in the applicable filter-set and in the filter record at a same bit position;
log generating module to generate log statements if the at least one bit is set in the applicable filter-set and in the filter record at the same bit position, comprising, for a severity level specified by a user, to create a filter record for the at least one module corresponding to the at least one user defined flow;
for the severity level specified by the user, creating the filter record for the at least one module corresponding to the at least one user defined flow,
wherein a bit in the filter record is set for the at least one user defined flow;
creating, prior to identifying, an applicable filter-set comprising the at least one user defined flow, wherein a bit is set in the applicable filter-set for the at least one user defined flow;
comparing the applicable filter-set tagged with the incoming message flow with the filter record to check if at least one bit is set in the applicable filter-set and in the filter record at a same bit position; and
generating a log statement if the at least one bit is set in the applicable filter-set and in the filter record at the same bit position.
2. The method of claim 1, wherein detecting a module comprises:
checking if the at least one module is marked for debugging.
3. The method of claim 1 further comprising: retrieving information from the filter record corresponding to the at least one module and from the applicable filter-set tagged with the incoming message flow.
4. The method of claim 1, wherein comparing comprises: performing a bitwise AND operation with the applicable filter-set and the filter record to check if the at least one bit is set in the applicable filter-set and the filter record at the same bit position.
5. The method of claim 1, wherein creating a filter record for the at least one module corresponding to the at least one user defined flow for a severity level comprises: creating the filter record for the at least one module corresponding to the at least one user defined flow according to a predetermined criterion.
7. The information processing system of claim 6 further comprising:
a retrieving module for retrieving information from the filter record corresponding to the at least one module and the applicable filterset tagged with the incoming message flow.
8. The information processing system of claim 6, wherein the severity level is defined according to a predetermined criterion.
9. The information processing system of claim 6, wherein the incoming message flow comprises one or more incoming message packets.
11. The machine-readable medium product of claim 10, wherein detecting further comprises:
checking if the at least one module is marked for debugging.

1. Technical Field

Embodiments of the invention relate generally to information processing systems and more particularly to generating log statements in information processing systems.

2. Prior Art

An information processing system receives a plurality of incoming message flows. The information processing system processes these plurality of incoming message flows and produces message flows with processed information. The information processing system includes various modules defined for different functionalities. Examples of various modules may include an input module, output module, processing module, authentication module, classification module and a connecting module. The plurality of incoming message flows are passed through the various modules defined in the information processing system.

The utility of the information processing system depends on the accuracy and timeliness of the output. Efficient debugging techniques facilitate improvement in the accuracy of the information processing system. Debugging is a process of detecting and eliminating mistakes in a program in the information processing system. Traditionally, log statements are used for debugging purposes. The log statements include a working log of the information processing system. The working log of an information processing system includes the progress of each flow or loop or a command in a program. The log statements may be embedded in a program to generate history of operations performed by software. Further, the log statements may send a record of the debugging process to various destinations. A common destination is a log file, wherein the log statements may be printed and dispatched.

Conventionally, log statements are used to debug various modules of the information processing system. Alternatively, log statements are also used to debug a user defined flow. The user can specify one or more message flows as a user defined flow. The user can also specify one or more modules for debugging. Traditional methods enable generation of log statements for either the user specified one or more message flows or the user specified one or more modules. For example, a user may be interested in debugging a particular message flow. Log statements are then generated for the message flow. However, log statements are generated for all the modules corresponding to that particular message flow. Hence the number of log statements generated will be proportional to the number of modules in the information processing system. Therefore, the information processing system may get strained when the number of modules defined in the information processing system increases. Also, all the log statements generated may not be useful to the user if the user is only interested in debugging a specific module.

Similarly, consider an example wherein the user is interested in debugging a specific module. Log statements are generated for the specific module. However, the log statements are generated for all the message flows corresponding to the specific module. Hence, the number of log statements generated is proportional to the number of message flows entering into the information processing system. Therefore, the information processing system may get strained when the number of message flows entering into the information processing system becomes large. Further, all the log statements may not be useful to the user if the user is interested in debugging a specific message flow.

In light of the foregoing discussion, there is a need for an efficient technique for generating log statements. Further, there is also a need for optimizing the memory usage while debugging.

Embodiments of the invention provide methods and systems for generating log statements.

An exemplary embodiment of the invention provides a method for generating log statements. An applicable filter-set comprising at least one user defined flow and at least one module corresponding to the user defined flow are identified. Further, an incoming message flow is tagged with information of the applicable filter-set. The at least one module corresponding to the user defined flow is detected for debugging based on the tagged information of the incoming message flow. Log statements are then generated for the at least one module detected for debugging.

An exemplary embodiment of the invention provides an information processing system for generating log statements. The information processing system includes a filter record creating module for creating a filter record for at least one module corresponding to at least one user defined flow for a severity level. A bit in the filter record is set for the at least one user defined flow. Further, the information processing system includes an applicable filter-set creating module for creating an applicable filter-set comprising the at least one user defined flow. A bit is set in the applicable filter-set for the at least one user defined flow. The information system also includes a tagging module for tagging an incoming message flow with information of the applicable filter-set. The information processing system further includes a comparing module for comparing the applicable filter-set with the filter record to check if at least one bit is set in the applicable filter-set and in the filter record at a same bit position. Further, the information processing system includes a log generating module for generating log statements if the at least one bit is set in the applicable filter-set and in the filter record at the same bit position.

An exemplary embodiment of the invention provides a machine-readable medium product including instructions operable to cause a programmable processor to perform identifying an applicable filter-set comprising at least one user defined flow and at least one module corresponding to the at least one user defined flow. An incoming message flow is tagged with information of the applicable filter-set. The at least one module corresponding to the user defined flow is then detected for debugging based on the tagged information of the incoming message flow. Further, log statements are generated for the at least one module detected for debugging corresponding to the at least one user defined flow and the tagged information of the incoming message flow.

FIG. 1 is a flow diagram illustrating steps performed in a method for generating log statements according to an embodiment of the invention;

FIG. 2 is a block diagram of a system including an exemplary information processing system according to an embodiment of the invention;

FIG. 3 is a block diagram of an information processing system for generating log statements according to an embodiment of the invention;

FIG. 4 is a flow diagram illustrating the steps in a method for generating log statements to facilitate efficient debugging according to an embodiment of the invention;

FIGS. 5a and 5b are block diagrams illustrating an exemplary applicable filter-set and arrays of filter records according to an embodiment of the invention; and

FIG. 6 is a block diagram of an exemplary computer system upon which various embodiments of the invention may be implemented.

Embodiments of the invention provide method, system and machine-readable medium product for generating log statements thereby facilitating efficient debugging in an information processing system.

An information processing system receives an incoming message flow. The information processing system processes the incoming message flow and generates an output message flow with processed information. The information processing system includes various modules defined for different functionalities. Examples of various modules include but are not limited to input module, output module, processing module, authentication module, classification module and connecting module. The incoming message flow is passed through the various modules defined in the information processing system. As the number of incoming message flows gradually increase, a debugging process is desired to be optimized for run time. A method for generating log statements is explained in FIG. 1.

FIG. 1 is a flow diagram 100 illustrating steps performed in a method for generating log statements according to an embodiment of the invention.

At step 105, an applicable filter-set including a user defined flow and a module corresponding to the user defined flow are identified. The applicable filter-set may include a plurality of user defined flows. In an embodiment of the invention, multiple modules corresponding to a particular user defined flow may be identified. In another embodiment of the invention, for each user defined flow, a filter may be created and may be used for identifying different user defined flows. Further at step 110, an incoming message flow is tagged with information of the applicable filter-set. As explained before, the information processing system receives several incoming message flows. Each incoming message flow received by the information processing system is tagged with the information corresponding to the applicable filter-set. In an embodiment of the invention, each incoming message flow entering into the information processing system is tagged with the applicable filter-set including user defined flows that include the incoming message flow. In another embodiment of the invention, each message flow entering into the information processing system may be specified by multiple user defined flows.

After tagging information of the applicable filter-set with the incoming message flow, at step 115, a module for debugging is detected corresponding to the user defined flow based on the tagged information of the incoming message flow. As message flows pass through various modules of the information processing system, a check is performed in each of the modules to find out if a module corresponding to the user defined flow is marked for debugging according to the tagged information of the applicable filter-set. In an embodiment of the invention, the check is performed to find out if the module is marked for debugging corresponding to the user defined flow specified in the tagged applicable filter-set of the incoming message flow. The check is performed for each incoming message flow passing through the various modules. Further, at step 120, log statements are generated for the module detected for debugging corresponding to the user defined and tagged information of the incoming message flow. Therefore, log statements are generated for a module subsequent to the checking operation.

FIG. 2 is a block diagram of a system 200 including an exemplary information processing system 205 according to an embodiment of the invention.

Information processing system 205 receives several incoming message flows (M1, M2 to M (n) as shown in FIG. 2). Information processing system 205 includes various modules defined for different functionalities including module A1 210, module A2 215 and module A (n) 220 respectively. Information processing system 205 processes the incoming message flows (M1, M2 to M (n) as shown in FIG. 2) and gives an output of message flows with processed information.

An applicable filter-set including a user defined flow and a module corresponding to the user defined flow are identified. An incoming message flow is tagged with information of the applicable filter-set. For example, incoming message flow M1 may be tagged with information of the applicable filter-set including all user defined flows if incoming message flow M1 is a part of all the user defined flows specified in the applicable filter-set. Further, module A2 215 may be identified corresponding to a user defined flow.

A module corresponding to the user defined flow is detected for debugging based on the tagged information of an incoming message flow. As the incoming message flows (M1, M2 and M (n) as shown in to the FIG. 2) pass through modules 210, 215 and 220, a check is performed in each of the modules 210, 215 and 220 to find out if one or more modules 210, 215 and 220 corresponding to the user defined flow is marked for debugging according tagged information of the applicable filter-set. The check is performed to find out if the module is marked for debugging corresponding to the user defined flow specified in the tagged applicable filter-set of the incoming message flow. Therefore, a check is performed to find out if module A2 215 is marked for debugging corresponding to the user defined flow specified in the tagged applicable filter-set of incoming message flow M1. Log statements are then generated for the module detected for debugging corresponding to the user defined and tagged information of the incoming message flow. Accordingly, log statements for module A2 215 are generated since module A2 215 is marked for debugging corresponding to the user defined flow specified in the tagged application filter-set of incoming message flow M1.

FIG. 3 is a block diagram of an information processing system 300 for generating log statements according to an embodiment of the invention.

System 300 includes a filter record creating module 305 for creating a filter record for a module corresponding to a user defined flow for a severity level. The severity level is defined according to a predetermined criterion. In an embodiment of the invention, the predetermined criterion includes defining the severity level according to a user for the module chosen for debugging. System 300 also includes an applicable filter-set creating module 310 for creating an applicable filter-set including the user defined flow. Further, system 300 includes a tagging module 315 for tagging an incoming message flow with information corresponding to the applicable filter-set. System 300 further includes a retrieving module 320 for retrieving the filter record corresponding to the module and the applicable filter-set tagged with the incoming message flow. System 300 includes a comparing module 325 for comparing the applicable filter-set with the filter record to check if at least one bit is set in the applicable filter-set and in the filter record at a same bit position. System 300 further includes a log generating module 330 for generating log statements if the at least one bit is set in the applicable filter-set and in the filter record at the same bit position.

One or more modules may be identified corresponding to a user defined flow for a severity level. A filter record creating module 305 is used for creating a filter record for each module identified corresponding to the user defined flow for a severity level. In an embodiment of the invention, filter records are created to indicate the user defined flow for which the one or more modules are identified. In another embodiment of the invention, filter records are created for all modules defined in the information processing system irrespective of the identification corresponding to the user defined flow. A bit is set in the filter record corresponding to the user defined flow. The severity level is defined according to a predetermined criterion. In an embodiment of the invention, the predetermined criterion includes defining the severity level according to a user for the module chosen for debugging. In an embodiment of the invention, different levels of severity are defined for user defined flows in the information processing system for debugging the user defined flows, either at compile time or at run-time.

In an embodiment of the invention, the severity level may be defined in a hierarchical order. The hierarchical order includes different severity levels including but not limited to “crit (critical)”, “warn (warning)”, “err (error)”, “info (information)” and “debug” defined in order or severity. In another embodiment of the invention, filter records may be created for a module corresponding to the user defined flow for each of the severity levels specified by the user. In an embodiment of the invention, the filter records may be stored in a memory region shared by all the modules of the information processing system. Further, the filter record corresponding to each module is accessible to the respective module for generating log statements. In an embodiment of the invention, an index corresponding to the respective filter record is stored in each module defined in the information processing system.

Further, a filter may be used for identifying user defined flows. Applicable filter-set creating module 310 is used for creating an applicable filter-set including the user defined flows. A bit is set in the applicable filter-set for each of the user defined flows. In an embodiment of the invention, a user may associate one or more modules for debugging corresponding to the user defined flows. In another embodiment of the invention, multiple incoming packets may form a part of the user defined flows. Therefore, the process of identifying a user defined flow for each incoming message packet is eliminated.

In an embodiment of the invention, each filter corresponds to a unique bit in the applicable filter-set. As the incoming message flow passes through the various modules of the information processing system, tagging module 315 is used for tagging an incoming message flow with information corresponding to the applicable filter-set. In an embodiment of the invention the applicable filter-set may be an array of fixed length. In another embodiment of the invention, the applicable filter-set and the filter record are derived from a same type of array, wherein the array may be of fixed length.

Retrieving module 320 is used for retrieving the filter record corresponding to each module defined in the information processing system. The filter record is retrieved using the index stored in each module corresponding to the respective filter record. Retrieving module 320 is also used for retrieving the applicable filter-set tagged with the incoming message flow. Further, comparing module 325 is used for comparing the applicable filter-set with the filter record to check if at least one bit is set in the applicable filter-set and in the filter record at a same bit position. In an embodiment of the invention, a bitwise AND operation is performed with the applicable filter set and the filter record for checking if the at least one bit is set in the applicable filter-set and in the filter record at the same bit position. Log generating module 325 is then used to generate log statements if the at least one bit is set in the applicable filter-set and in the filter record at the same bit position.

In an embodiment of the invention, applicable filter-set creating module 310, tagging module 315, filter record creating module 305, retrieving module 320, comparing module 325 and log generating module 330 may include one or more algorithms.

FIG. 4 is a flow diagram 400 illustrating the steps in a method for generating log statements using an efficient debugging technique according to an embodiment of the invention

An information processing system may include various modules specified for different functionalities. At step 405, a filter record for a module is created corresponding to a user defined flow for a severity level. Further, a bit is set in the filter record for the user defined flow. As explained before, the severity level is defined according to a predetermined criterion. In an embodiment of the invention, the predetermined criterion includes defining the severity level according to a user for the module chosen for debugging. In an embodiment of the invention, different levels of severity are defined for user defined flows in the information processing system for debugging the user defined flows, either at compile time or at run-time.

In an embodiment of the invention, filter records may be created for a module corresponding to the user defined flow for each of the severity levels specified by the user. In another embodiment of the invention, filter records may be created for all modules defined in the information processing system irrespective of the identification corresponding to the user defined flow. As explained in FIG. 3, the filter records may be stored in a memory region shared by all the modules of the information processing system and each of the filter records corresponding to a module is accessible to the respective module for generating log statements. In an embodiment of the invention, an index corresponding to the respective filter record is stored in each module defined in the information processing system.

After creating a filter record for each module in the information processing system, at step 410 an applicable filter-set including the user defined flow is created. Further, a bit is set in the applicable filter-set for the user defined flow. In an embodiment of the invention, a filter is used for identifying each user defined flow.

Further, at step 415, an incoming message flow is tagged with information corresponding to the applicable filter-set. Therefore, each incoming message flow entering into the information processing system is tagged with an applicable filter-set including all user defined flows, if the incoming message flow forms a part of all the user defined flows.

At step 420, information from the filter record corresponding to the module defined for the severity level is retrieved. In an embodiment of the invention, the filter record is retrieved using the index stored in each module corresponding to the respective filter record. Further, the filter record may retrieved from the shared memory region. The information of the applicable filter-set tagged with the incoming message flow is also retrieved.

After retrieving information from the applicable filter-set and the filter record, at step 425, a check is performed to find if at least one bit is set in the applicable filter-set and in the filter record at a same bit position. As explained in FIG. 3, the applicable filter-set and the filter record may be derived from a same type of array, wherein the array may of fixed length. This helps in easy identification of the at least one bit set at the same bit position in the applicable filter-set and in the filter record. In an embodiment of the invention, a bitwise AND operation is performed with the applicable filter-set and the filter record to check if the at least one bit is set in the applicable filter-set and in the filter record. Further, if at least one bit is set at the same bit position in the applicable filter-set and in the filter record, step 430 is performed, else step 435 is performed.

At step 430, a log statement is generated if the at least one bit is set at the same bit position in the applicable filter-set and in the filter record. Alternatively, at step 435, a log statement is not generated if the at least one bit is not set at the same bit position in the applicable filter-set an in the filter record.

Therefore, generating log statements for user defined flows and modules corresponding to the user defined flows provide advantage to a user when the number of incoming message flows and the number of modules defined in the system is large. Further, the efficiency of the information processing system is increased since the log statements that are relevant to the user are generated. Further, embodiments of the invention facilitate an efficient debugging process that is optimized for run time since log statements are generated in a predictable manner for finite number of look ups. Moreover, providing a shared memory for storing the filter record optimizes the memory usage. Further, memory requirements for the information processing system has a constant over head per flow, independent of the number of modules in the information processing system. Similarly, memory requirements for the information processing system has a constant over head per module, independent of the number of message flows entering the information processing system.

FIGS. 5a and 5b are block diagrams illustrating an exemplary applicable filter-set and arrays of filter records according to an embodiment of the invention.

FIG. 5a illustrates an exemplary applicable filter-set 505. Applicable filter-set 505 includes one or more user defined flows including flow1 510 and flow2 515. FIG. 5b includes exemplary arrays of filter records 520 defined for various modules in the information processing system including filter record array 525 defined for module1 and filter record array 530 defined for module2.

One or more user defined flows (510 and 515) are identified using filters. An applicable filter-set 505 including the one or more user defined flows (510 and 515) is created. For example, 510 and 515 are identified as user defined flows. Each of the user defined flow (510 and 515) is represented in the applicable filter-set 505 with a unique bit. For example, flow1 510 is marked (set to 1) as the second bit in the applicable filter-set 505 and flow2 515 is marked (set to 1) as the fifth bit in the applicable filter-set 505 as shown in FIG. 5a. In an embodiment of the invention, the applicable filter-set may be an array of 64 bits as shown in FIG. 5a. Further, an incoming message flow is tagged with applicable filter-set 505 if the incoming message flow forms a part of the user defined flows (510 and 515).

Further, in FIG. 5b, an array of filter records 520 is created for each module (module1 and module2) corresponding to the user defined flows (flow1 510 and flow2 515). A bit is set in each of the filter records of the array of filter records (525 and 530) for the user defined flows (flow1 510 and flow2 515). Further, each filter record of the arrays of filter records (525 and 530) is created for severity levels defined by the user for the modules (module1 and module2). For example, module1 may be identified for “info (information)” as the severity level. A filter record is then created for module1 at severity level “info (information)” corresponding to flow1 510 and flow2 515 as shown in FIG. 5b. In an embodiment of the invention, filter records are also created for all severity levels higher than the defined severity level for a particular module in order to increase efficiency of the debugging process. Therefore, filter record array 525 created for module1 corresponding to flow1 510 and flow2 515 includes each filter record for all severity levels higher than “info (information)” as shown in FIG. 5b. Similarly, module2 may be identified for “debug” as the severity level. A filter record is created for module2 at severity level “debug” corresponding to flow1 510 and flow2 515. Further, filter record array 530 created for module2 corresponding to flow1 510 and flow2 515 also includes each filter record for all severity levels higher than “debug” as shown in FIG. 5b.

In an embodiment of the invention an index to the respective filter record array (525 and 530) is stored in each module (module1 and module 2) for facilitating a faster retrieval of the corresponding filter record arrays (525 and 530). In another embodiment of the invention, filter record arrays (525 and 530) are stored in a memory region shared by all the modules (module1 and module2). As the incoming message flow tagged with the applicable filter-set 505 passes through the modules (module1 and module2), a check is performed to find if at least one bit is set at a same bit position in the applicable filter-set 505 and in the each filter record of the arrays of filter records (525 and 530) for the particular severity level. The check is performed by performing a bitwise AND operation with the applicable filter-set 505 and the filter record 520. In the example considered, at least one bit is set at the same bit position in the applicable filter-set 505 and in each of the filter record of the arrays of filter records (525 and 530) corresponding to user defined flows (510 and 515) for the respective severity levels. Therefore log statements are generated for the modules (module1 and module2).

One or more steps of the method described in FIGS. 1 and 4 may be implemented using a computer system. An exemplary computer system is explained in details in conjunction with FIG. 6.

FIG. 6 is a block diagram of an exemplary computer system 600 upon which various embodiments of the invention may be implemented. Computer system 600 includes a processing unit 615 including a main memory 620, such as a Random Access Memory (RAM) or other dynamic storage device, coupled to a bus interface 630 for storing information and instructions to be executed by processor 625. A storage device 635, such as a magnetic disk or optical disk, is provided and coupled to bus interface 630 for storing information and instructions. Computer system 600 may be coupled via bus interface 630 to a display 610 for displaying information to a user. An input device 605, including alphanumeric and other keys, is coupled to bus interface 630 for communicating information and command selections to processor 625.

Embodiments of the invention are related to the use of computer system 600 for implementing the techniques described herein. In an embodiment of the invention, those techniques are performed by computer system 600 in response to processor 625 executing one or more sequences of one or more instructions included in main memory 620. Such instructions may be read into main memory 620 from another machine-readable medium product, such as storage device 635. Execution of the sequences of instructions included in main memory 620 causes processor 625 to perform the method embodiment of the invention described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.

The term “machine-readable medium product” as used herein refers to any medium that participates in providing data that causes a machine to operation in a specific fashion. Examples of the machine-readable medium product include but are not limited to memory devices, tapes, disks, cassettes, integrated circuits, servers, online software, download links, installation links, and online links.

In an embodiment implemented using computer system 600, various machine-readable medium products are involved, for example, in providing instructions to processor 625 for execution. Computer system 600 also includes a communication interface 640 coupled to bus interface 630. Communication interface 640 provides a two-way data communication coupling to internet 645 that is coupled a server 650. Server 650 might transmit a requested code for an application program through internet 645 and communication interface 640.

The foregoing description sets forth numerous specific details to convey a thorough understanding of embodiments of the invention. However, it will be apparent to one skilled in the art that embodiments of the invention may be practiced without these specific details. Some well-known features are not described in detail in order to avoid obscuring the invention. Other variations and embodiments are possible in light of above teachings, and it is thus intended that the scope of invention not be limited by this Detailed Description, but only by the following Claims.

Bisht, Ashutosh, Chaudhary, Abhijit

Patent Priority Assignee Title
10033607, Oct 13 2015 FUTURE LINK SYSTEMS, LLC Packet loss debug system and method
11095497, Sep 12 2016 Telefonaktiebolaget LM Ericsson (publ); TELEFONAKTIEBOLAGET LM ERICSSON PUBL Efficient troubleshooting in SDN network
11115328, May 04 2017 TELEFONAKTIEBOLAGET LM ERICSSON PUBL Efficient troubleshooting in openflow switches
11218406, Oct 27 2017 TELEFONAKTIEBOLAGET LM ERICSSON PUBL Optimized datapath troubleshooting
11438254, Jun 13 2018 Telefonaktiebolaget LM Ericsson (publ); TELEFONAKTIEBOLAGET LM ERICSSON PUBL Apparatus and method to trace packets in a packet processing pipeline of a software defined networking switch
11444864, Oct 27 2017 TELEFONAKTIEBOLAGET LM ERICSSON PUBL Optimized datapath troubleshooting with trace policy engine
11522797, Aug 30 2017 TELEFONAKTIEBOLAGET LM ERICSSON PUBL Method and system for tracing packets in software defined networks
9729671, Oct 05 2014 YSCOPE INC Systems and processes for computer log analysis
ER34,
Patent Priority Assignee Title
5487169, Nov 18 1993 Motorola, Inc.; Motorola, Inc Method for translating a test plan source file containing multiple programming languages
5594904, Feb 28 1994 Telefonaktiebolaget L M Ericsson Tracing with keys and locks
6189084, Jul 14 1997 Horiba, Ltd. Debugging method and monitoring method for analysis instruments
6397379, Jan 28 1999 ADVANCED SILICON TECHNOLOGIES, LLC Recording in a program execution profile references to a memory-mapped active device
6701514, Mar 27 2000 Accenture Global Services Limited System, method, and article of manufacture for test maintenance in an automated scripting framework
6721941, Aug 27 1996 JPMORGAN CHASE BANK, N A , AS SUCCESSOR AGENT Collection of timing and coverage data through a debugging interface
6728949, Dec 12 1997 RPX Corporation Method and system for periodic trace sampling using a mask to qualify trace data
7024660, Feb 17 1998 National Instruments Corporation Debugging a program intended to execute on a reconfigurable device using a test feed-through configuration
7089542, Dec 13 2002 International Business Machines Corporation Method and apparatus for finding errors in software programs using satisfiability of constraints
7100152, Jan 31 2000 SHENZHEN XINGUODU TECHNOLOGY CO , LTD Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof
7490319, Nov 04 2003 Kimberly-Clark Worldwide, Inc Testing tool comprising an automated multidimensional traceability matrix for implementing and validating complex software systems
7516446, Jun 25 2002 International Business Machines Corporation Method and apparatus for efficient and precise datarace detection for multithreaded object-oriented programs
7707557, Dec 30 2003 SAP SE Execution of modified byte code for debugging, testing and/or monitoring of object oriented software
7721263, May 16 2005 Texas Instruments Incorporated Debug event instruction
7788642, May 16 2005 Texas Instruments Incorporated; TEXAS INSTRUMENTS, INC Displaying cache information using mark-up techniques
7810075, Apr 29 2005 SAP SE Common trace files
7886271, May 16 2005 Texas Instruments Incorporated Embedding event information in the timing stream
7900201, Dec 21 2004 Citrix Systems, Inc Automated remedying of problems in software application deployments
7950003, Dec 07 2006 SONY INTERACTIVE ENTERTAINMENT INC Heads-up-display software development tool for analyzing and optimizing computer software
7958495, Mar 08 2007 SYSTEMWARE, INC Program test system
8032886, Nov 22 2000 Microsoft Technology Licensing, LLC Tracking asynchronous execution of program using hierarchical structure of objects
8079019, Nov 21 2007 CA, INC Advancing and rewinding a replayed program execution
8127277, May 21 2007 International Business Machines Corporation Framework for conditionally executing code in an application using conditions in the framework and in the application
8196112, Feb 15 2008 Amazon Technologies, Inc. Systems and methods for testing widgets in computer environments
8341604, Nov 15 2006 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
8370806, Nov 15 2006 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
///////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Mar 29 2008BISHT, ASHUTOSHSONOA NETWORKS INDIA PVT LTD ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0207260839 pdf
Mar 29 2008CHAUDHARY, ABHIJITSONOA NETWORKS INDIA PVT LTD ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0207260839 pdf
Mar 31 2008Apigee Corporation(assignment on the face of the patent)
Jun 09 2011SONOA NETWORKS INDIA PRIVATE LIMITEDAPIGEE TECHNOLOGIES INDIA PRIVATE LIMITEDCHANGE OF NAME SEE DOCUMENT FOR DETAILS 0416960245 pdf
Aug 12 2013APIGEE TECHNOLOGIES INDIA PRIVATE LIMITEDApigee CorporationCHANGE OF NAME SEE DOCUMENT FOR DETAILS 0310400098 pdf
Jan 04 2017Apigee CorporationGoogle IncASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0409550070 pdf
Sep 29 2017Google IncGOOGLE LLCCHANGE OF NAME SEE DOCUMENT FOR DETAILS 0441290001 pdf
Date Maintenance Fee Events
Apr 05 2017STOL: Pat Hldr no Longer Claims Small Ent Stat
Apr 17 2017M1551: Payment of Maintenance Fee, 4th Year, Large Entity.
Apr 15 2021M1552: Payment of Maintenance Fee, 8th Year, Large Entity.


Date Maintenance Schedule
Oct 15 20164 years fee payment window open
Apr 15 20176 months grace period start (w surcharge)
Oct 15 2017patent expiry (for year 4)
Oct 15 20192 years to revive unintentionally abandoned end. (for year 4)
Oct 15 20208 years fee payment window open
Apr 15 20216 months grace period start (w surcharge)
Oct 15 2021patent expiry (for year 8)
Oct 15 20232 years to revive unintentionally abandoned end. (for year 8)
Oct 15 202412 years fee payment window open
Apr 15 20256 months grace period start (w surcharge)
Oct 15 2025patent expiry (for year 12)
Oct 15 20272 years to revive unintentionally abandoned end. (for year 12)