Diagnosing production applications
First Claim
1. A method comprising:
- modifying an application that is executing on a production server by rewriting intermediate language code for the application in a way that avoids downtime by maintaining state, wherein the production server allows users to access the application in a non-debugging environment, and wherein the rewritten intermediate language code adds one or more conditional expression that defines conditions under which snapshots of the application should be created at one or more locations of possible errors;
evaluating the one or more conditional expression in the applications using an interpreter;
creating a snapshot of the application when the interpreter evaluates the one or more conditional expression as true, wherein the snapshot creates an entire copy of all of the memory pages for the application using a copy-on-write operation;
associating a diagnostic tool with the snapshot;
collecting data from the snapshot using the diagnostic tool without affecting the executing application;
creating one or more additional snapshots of the application when the interpreter evaluates the one or more conditional expression as true at different times; and
comparing data from any of the snapshots to identify trends.
2 Assignments
0 Petitions
Accused Products
Abstract
A debugging and diagnostics system allow for dynamic code generation that inserts code into a production application to identify snappoints or breakpoints that cause snapshots to be taken if predefined conditionals are satisfied. The snappoints are associated with locations in source code for the production application and include conditional statements that must be met to create a snapshot of the production application. The snappoints are used to generate a collection plan that is provided to the server running the production application. The server rewrites the code of the production application based upon the collection plan to insert instructions that create snapshots when the conditional statements are met.
87 Citations
19 Claims
-
1. A method comprising:
-
modifying an application that is executing on a production server by rewriting intermediate language code for the application in a way that avoids downtime by maintaining state, wherein the production server allows users to access the application in a non-debugging environment, and wherein the rewritten intermediate language code adds one or more conditional expression that defines conditions under which snapshots of the application should be created at one or more locations of possible errors; evaluating the one or more conditional expression in the applications using an interpreter; creating a snapshot of the application when the interpreter evaluates the one or more conditional expression as true, wherein the snapshot creates an entire copy of all of the memory pages for the application using a copy-on-write operation; associating a diagnostic tool with the snapshot; collecting data from the snapshot using the diagnostic tool without affecting the executing application; creating one or more additional snapshots of the application when the interpreter evaluates the one or more conditional expression as true at different times; and comparing data from any of the snapshots to identify trends. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer system comprising:
-
a rewriting profiler on a production server configured to modify an application that is executing on the production server by rewriting intermediate language code for the application in a way that avoids downtime by maintaining state, wherein the production server allows users to access the application in a non-debugging environment, and wherein the rewritten intermediate language code adds one or more conditional expression that defines conditions under which snapshots of the application should be created at one or more locations of possible errors; an interpreter configured to create a snapshot of the application when the one or more conditional expression is evaluated as true, wherein the snapshot creates an entire copy of all of the memory pages for the application using a copy-on-write operation; and a diagnostic tool that is associated with the snapshot, wherein data is collected from the snapshot using the diagnostic tool without affecting the executing application, and wherein one or more additional snapshots of the application are created when the interpreter evaluates the one or more conditional expression as true at different times, and wherein data from any of the snapshots is compared to identify trends. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computer readable hardware device, excluding signals, comprising computer executable instructions that, when executed by one or more processors, cause the one or more processors to:
-
modify, at a production server in a datacenter, modify an application by rewriting intermediate language code for the application in a way that avoids downtime by maintaining state, wherein the production server allows users to access the application in a non-debugging environment, and wherein the rewritten intermediate language code adds one or more conditional expression that defines conditions under which snapshots of the application should be created at one or more locations of possible errors; and creating a snapshot of the application when the interpreter evaluates the one or more conditional expression as true, wherein the snapshot creates an entire copy of all of the memory pages for the application using a copy-on-write operation; create a snapshot of the application on the production server when an interpreter evaluates the one or more conditional expression as true, wherein the snapshot creates an entire copy of all of the memory pages for the application using a copy-on-write operation; associating a diagnostic tool with the snapshot; collecting data from the snapshot using the diagnostic tool without affecting the executing application; creating one or more additional snapshots of the application when the interpreter evaluates the one or more conditional expression as true at different times; and comparing data from any of the snapshots to identify trends. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification