Heap dump object identification in a heap dump analysis tool
US-9459991-B2 · Oct 4, 2016 · US
US9575871B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9575871-B2 |
| Application number | US-201314017676-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 4, 2013 |
| Priority date | Sep 4, 2012 |
| Publication date | Feb 21, 2017 |
| Grant date | Feb 21, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
What is claimed: 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. 2. The method of claim 1 , further comprising loading the heap dump into a debugging simulator, and wherein debugging comprises debugging the code using the simulator. 3. The method of claim 1 , further comprising creating a step-wise transcript of machine actions and corresponding memory addresses, and identifying the first location based on the transcript. 4. The method of claim 3 , wherein the transcript is created using a resource tracker. 5. The method of claim 4 , wherein the resource tracker is configured to monitor at least one predetermined resource limit, and the transcript comprises metadata associated with execution of the code. 6. The method of claim 5 , wherein the predetermined resource limit comprises one of: a predetermined number of memory queries; and a predetermined memory size. 7. The method of claim 5 , further comprising: identifying a second location within the code having a suspected error; defining a second check point corresponding to the second location; subsequently re-executing the code, including the first and second check points, on the server; and creating respective memory dumps corresponding the first and second check points. 8. The method of claim 1 , wherein defining the first check point comprises inserting a mark in the margin of a source code listing corresponding to the code. 9. The method of claim 1 , wherein debugging comprises debugging using a simulator, the simulator is configured to perform at least one of: step-by-step program animation, syntax error handling, and logic error handling functions. 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. 11. The processing system of claim 10 , wherein the diagnostic tool comprises a log viewer, a heap dump viewer, and a source code editor. 12. The processing system of claim 10 , wherein the tracking tool comprises a resource tracker configured to monitor at least one predetermined resource limit, and the transcript comprises metadata associated with execution of the code. 13. The processing system of claim 10 , wherein debugging the application further comprises at least one of: step-by-step program animation, syntax error handling, and logic error handling functions. 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. 15. The computer code of claim 14 configured for operation in a multi-tenant on demand computing environment. 16. The computer code of claim 14 configured for operation in a single tenant computing environment. 17. The computer code of claim 14 , wherein identifying comprises creating a step-wise transcript of machine actions and corresponding memory addresses during run time execution, and identifying the first location based on the transcript. 18. The computer code of claim 14 , further configured to load the heap dump into a debu
Debugging of software · CPC title
Physics · mapped topic
by tracing the execution of the program · CPC title
Environments for analysis, debugging or testing of software · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.