Patent ID: 7895580

Claim:
A method for modifying an application to provide functionality for tracing a program flow of the application at a user-configurable level of granularity specified via a Graphical User Interface presented at an end-user device, the method comprising: reading program code from memory and processing said program code with one or more processors to perform the following: presenting to the end-user device via the Graphical User Interface, options for modifying the application's bytecode by injecting tracing and debugging operations into the application's bytecode at the user-configurable level of granularity specified via the Graphical User Interface, wherein the application is composed of a plurality of archive files associated with two or more distinct tiers in a multi-tiered architecture, the archive files having respective class files, and the respective class files having respective methods, and wherein the options for modifying the application's bytecode includes: modifying bytecode of only a subset of a plurality of methods from which the application is composed, the subset of the plurality of methods selected from two or more class files in two or more archive files composing the application's bytecode as specified via the Graphical User Interface presented to the end-user device, wherein the two or more archive files are associated with two or more distinct tiers of the multi-tiered architecture, and wherein the modified subset of the plurality of methods specified provides the user-configurable level of granularity by providing the functionality for tracing the program flow of the application through only the subset of the plurality of methods specified via the tracing and debugging operations injected into the subset of the plurality of methods specified; executing the application in an object oriented runtime frame work, wherein executing the application includes processing a portion of the application's bytecode that was modified in accordance with the user-configurable level of granularity specified via the Graphical User Interface; presenting output generated from execution of the portion of the application's bytecode that was modified to the end-user device via the Graphical User Interface; wherein the portion of the application's bytecode that was modified includes a method entry or method exit; wherein said dispatch unit is invoked by the modified bytecode and recognizes the invoking method associated with the modified bytecode by way of receiving the invoking method's class identifier, the invoking method's identifier, and the invoking method's parameters; wherein the dispatch unit redirects program flow to one or more plug-in modules comprising plug-in handlers; and wherein said output is provided by said plug-in handlers.