System and method for dynamically debugging data in a multi-tenant database environment

US9575871B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9575871-B2
Application numberUS-201314017676-A
CountryUS
Kind codeB2
Filing dateSep 4, 2013
Priority dateSep 4, 2012
Publication dateFeb 21, 2017
Grant dateFeb 21, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9575871B2 cover?
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, o…
Who is the assignee on this patent?
Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/3636. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 21 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).