Snapshotting executing code with a modifiable snapshot definition
First Claim
1. A method, implemented at a computer system that includes one or more processors, for collecting performance data and snapshot data of an application executing on the one or more processors, the method comprising:
- during execution of an application;
collecting performance data comprising one or more of counters, processing times, and data throughput;
identifying a snapshot definition, comprising (i) an event definition defining a condition under which execution of the application is to be paused and a snapshot of the paused application is to be taken, and (ii) a dataset definition defining a plurality of snapshot data items, different from the performance data, that are to be collected as part of the snapshot and that define an execution state of the application when satisfaction of the condition occurred, the plurality of snapshot data items including one or more of a call stack and one or more variable values; and
identifying satisfaction of the condition;
based at least on identifying satisfaction of the condition, pausing both execution of the application and collection of performance data;
while execution of the application is paused, collecting the plurality of snapshot data items according to the dataset definition;
subsequent to collecting the plurality of snapshot data items, resuming both execution of the application and collection of the performance data;
assigning a first security policy to the collected performance data and a second security policy to the collected plurality of snapshot data items, the first security policy including a first indication that the collected performance data should be unencrypted and the second security policy including a second indication that the collected plurality of snapshot items should be encrypted;
storing the collected performance data within a performance database in an unencrypted format based on the first indication of the first security policy; and
storing the collected plurality of snapshot data items within a snapshot database in an encrypted format based on an the second indication of the second security policy.
2 Assignments
0 Petitions
Accused Products
Abstract
A tracing and debugging system may take a snapshot of an application in response to an event, and may continue executing the program after the snapshot is captured. The snapshot may be stored and retrieved later in a debugging tool where a programmer may browse the snapshot or the snapshot may have some other analysis performed. The snapshot may contain a subset of the state of the application, such as call stacks, portions of source code, the values of local and global variables, and various metadata. The snapshot may be defined in a snapshot configuration that may include an event description and data to be collected.
-
Citations
25 Claims
-
1. A method, implemented at a computer system that includes one or more processors, for collecting performance data and snapshot data of an application executing on the one or more processors, the method comprising:
-
during execution of an application; collecting performance data comprising one or more of counters, processing times, and data throughput; identifying a snapshot definition, comprising (i) an event definition defining a condition under which execution of the application is to be paused and a snapshot of the paused application is to be taken, and (ii) a dataset definition defining a plurality of snapshot data items, different from the performance data, that are to be collected as part of the snapshot and that define an execution state of the application when satisfaction of the condition occurred, the plurality of snapshot data items including one or more of a call stack and one or more variable values; and identifying satisfaction of the condition; based at least on identifying satisfaction of the condition, pausing both execution of the application and collection of performance data; while execution of the application is paused, collecting the plurality of snapshot data items according to the dataset definition; subsequent to collecting the plurality of snapshot data items, resuming both execution of the application and collection of the performance data; assigning a first security policy to the collected performance data and a second security policy to the collected plurality of snapshot data items, the first security policy including a first indication that the collected performance data should be unencrypted and the second security policy including a second indication that the collected plurality of snapshot items should be encrypted; storing the collected performance data within a performance database in an unencrypted format based on the first indication of the first security policy; and storing the collected plurality of snapshot data items within a snapshot database in an encrypted format based on an the second indication of the second security policy. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program product comprising one or more hardware storage devices having stored thereon computer-executable instructions that are executable by at least one processor of a computer system to configure the computer system to collect performance data and snapshot data of an application executing on the at least one processor, the computer-executable instructions including instructions that configure the computer system to perform at least the following:
-
during execution of an application; collect performance data comprising one or more of counters, processing times, and data throughput; identify a snapshot definition comprising (i) an event definition defining a condition under which execution of the application is to be paused and a snapshot of the paused application is to be taken, and (ii) a dataset definition defining a plurality of snapshot data items, different from the performance data, that are to be collected as part of the snapshot and that define an execution state of the application when satisfaction of the condition occurred, the plurality of snapshot data items including one or more of a call stack and one or more variable values; and identify satisfaction of the condition for collecting said snapshot; based at least on identifying satisfaction of the condition, pause both execution of the application and collection of performance data; while execution of the application is paused, collect the plurality of snapshot data items according to the dataset definition; subsequent to collecting the plurality of snapshot data items, resume both execution of the application and collection of performance data assign a first security policy to the collected performance data and a second security policy to the collected plurality of snapshot data items, the first security policy including a first indication that the collected performance data should be unencrypted and the second security policy including a second indication that the collected plurality of snapshot items should be encrypted; store the collected performance data within a performance database in an unencrypted format based on the first indication of the first security policy; and store the collected plurality of snapshot data items within a snapshot database in an encrypted format based on an the second indication of the second security policy. - View Dependent Claims (11)
-
-
12. A computer system comprising:
-
at least one processor; and one or more computer readable media having stored thereon computer-executable instructions that are executable by the at least one processor to collect performance data and snapshot data of an application executing on the at least one processor, the computer-executable instructions including instructions that are executable to configure the computer system to perform at least the following; during execution of an application; collect performance data comprising one or more of counters, processing times, and data throughput; identify a snapshot definition comprising (i) an event definition defining a condition under which execution of the application is to be paused and a snapshot of the paused application is to be taken, and (ii) a dataset definition defining a plurality of snapshot data items, different from the performance data, that are to be collected as part of the snapshot and that define an execution state of the application when satisfaction of the condition occurred, the plurality of snapshot data items including one or more of a call stack and one or more variable values; and identify satisfaction of the condition; based at least on identifying satisfaction of the condition, pause both execution of the application and collection of performance data; while execution of the application is paused, collect the plurality of snapshot data items according to the dataset definition; subsequent to collecting the plurality of snapshot data items, resume both execution of the application and collection of the performance data; assign a first security policy to the collected performance data and a second security policy to the collected plurality of snapshot data items, the first security policy including a first indication that the collected performance data should be unencrypted and the second security policy including a second indication that the collected plurality of snapshot items should be encrypted; store the collected performance data within a performance database in an unencrypted format based on the first indication of the first security policy; and store the collected plurality of snapshot data items within a snapshot database in an encrypted format based on an the second indication of the second security policy. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
Specification