System and method for dynamically debugging data in a multi-tenant database environment
First Claim
Patent Images
1. A method of debugging application code in an on demand environment, the method comprising:
- imposing memory allocation limits using a software-based resource tracker tool;
executing the code by a server in the on demand environment;
during execution of the code,creating a transcript of step-wise machine actions and associated metadata during execution of the code;
identifying, by the server, a first location within the code having a suspected error, by;
detecting that one or more of the memory allocation limits have been exceeded during execution of the code; and
setting a flag at the first location, based on the one or more of the memory allocation limits being exceeded;
defining, by the server, a first check point within the code corresponding to the flag at the first location;
subsequently re-executing the code, including the first check point, by the server;
creating, by the server, a heap dump corresponding the first check point during re-execution of the code; and
debugging the code based on the heap dump without suspending the subsequent re-execution of the code, by;
retrieving the transcript, to create a retrieved transcript;
loading the retrieved transcript into a simulated debugger used as a surrogate for a conventional debugger; and
performing a step-wise execution of the retrieved transcript using logged execution data;
wherein debugging the code is performed in parallel to the subsequent re-execution of the code.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems are provided for debugging application code in an on demand environment. The method includes executing the code on a server in the on demand environment; identifying a first location within the code having a suspected error; defining a first check point within the code corresponding to the first location; subsequently re-executing the code, including the first check point, on the server; creating a memory dump corresponding the first check point during re-execution of the code; and debugging the code based on the heap dump without suspending subsequent re-execution of the code.
-
Citations
19 Claims
-
1. A method of debugging application code in an on demand environment, the method comprising:
-
imposing memory allocation limits using a software-based resource tracker tool; executing the code by a server in the on demand environment; during execution of the code, creating a transcript of step-wise machine actions and associated metadata during execution of the code; identifying, by the server, a first location within the code having a suspected error, by; detecting that one or more of the memory allocation limits have been exceeded during execution of the code; and setting a flag at the first location, based on the one or more of the memory allocation limits being exceeded; defining, by the server, a first check point within the code corresponding to the flag at the first location; subsequently re-executing the code, including the first check point, by the server; creating, by the server, a heap dump corresponding the first check point during re-execution of the code; and debugging the code based on the heap dump without suspending the subsequent re-execution of the code, by; retrieving the transcript, to create a retrieved transcript; loading the retrieved transcript into a simulated debugger used as a surrogate for a conventional debugger; and performing a step-wise execution of the retrieved transcript using logged execution data; wherein debugging the code is performed in parallel to the subsequent re-execution of the code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A processing system for running and debugging an application in a multi-tenant environment, comprising:
-
a multi-tenant server configured to run the application and to create a transcript of step-wise machine actions and associated metadata during execution of the application; a first memory device configured to store the transcript of step-wise operation of the application during run time; a tracking tool configured to impose memory allocation limits for a second memory device and to identify a first location within the application of a suspected error, by; detecting that one or more of the memory allocation limits have been exceeded during execution of the application; and setting a flag at the first location, based on the one or more of the memory allocation limits being exceeded; a diagnostic tool configured to define a first checkpoint within source code associated with the application corresponding to the flag at the first location, wherein the multi-tenant server is further configured to re-execute the application after the first checkpoint is defined, wherein the diagnostic tool comprises a simulator configured to browse the transcript without interrupting running of the application on the server; and the second memory device configured to store a heap dump associated with execution of the application in the vicinity of the first check point, wherein the diagnostic tool is further configured to debug the application based on the heap dump, by; retrieving the transcript, to create a retrieved transcript; loading the retrieved transcript into a simulated debugger used as a surrogate for a conventional debugger; and performing a step-wise execution of the retrieved transcript using logged execution data; wherein debugging the code is performed in parallel to the subsequent re-execution of the code, and wherein debugging the application comprises browsing the transcript. - View Dependent Claims (11, 12, 13)
-
-
14. Computer code embodied in a non-transitory medium for operation by a processing system for performing the steps of:
-
imposing memory allocation limits using a software-based resource tracker tool; run time execution, by a processor of a server, of an application having associated source code; during execution of the application, creating a transcript of step-wise machine actions and associated metadata during execution of the code; identifying, by the processor, a first location of a suspected error within the application, by; detecting that one or more of the memory allocation limits have been exceeded during execution of the application; and setting a flag at the first location, based on the one or more of the memory allocation limits being exceeded; subsequently re-executing the application, by the processor; creating a heap dump, by the processor, the heap dump corresponding to the flag at the first location during re-execution of the application; and debugging the source code based on the heap dump without suspending the subsequent re-execution of the application, by; retrieving the transcript, to create a retrieved transcript; loading the retrieved transcript into a simulated debugger used as a surrogate for a conventional debugger; and performing a step-wise execution of the retrieved transcript using logged execution data; wherein debugging the source code is performed in parallel to the subsequent re-execution of the application. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification