IP Library Patent Application 17965846
Patent Application
App. No. 17/965,846

DYNAMICALLY CAPTURING DEBUG LOGS DURING RUNTIME

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
17/965,846
Abstract

Systems and methods are described herein for dynamic debug logging during application runtime. In an example, a wrapper can be added to the code for functions of the application. During runtime, the wrapper can cause the functions to retain certain debug data. In one example, a function call graph can be constructed, which can include all the possible function call paths for the application. When an error occurs, if the application does not have a stack trace tool or API available, the application can use the function call graph to determine all possible function call paths between the entrant function and the errored function. If an application does have a stack trace tool or API, then the application can retrieve the actual function call path that led to the error. The application can enable a debug flag in the wrapper for each function in the function call path, which can cause those functions to log runtime debug data.

Claims (34)

1 . A method for dynamically capturing debug logs, comprising:

detecting that a function of an application encountered an error during execution of the application;

retrieving a function call path between an entrant function and the function that encountered the error by executing a stack trace;

enabling debug logging at each function in the function call path; and

retrieving debug data from each function in the function call path.

2 . The method of claim 1 , wherein each function in the function call path includes a wrapper that causes the corresponding function to store values of registered variables at entry point and exit point when the corresponding function is called.

3 . The method of claim 2 , wherein enabling debug logging at each function in the function call path includes enabling a debug flag included in each function's wrapper that causes the corresponding function to execute a subfunction for logging the debug data.

4 . The method of claim 2 , further comprising disabling the debug flag at each function in the function call path after the debug data is logged.

5 . The method of claim 2 , wherein the debug data for each function in the function call path includes the stored values of registered variables and a state of a memory stack for the corresponding function.

6 . The method of claim 1 , wherein the function call path includes a list of functions in a call stack for a thread in which the error occurred.

7 . The method of claim 1 , wherein retrieving debug data includes logging the debug data to a log file.

8 . A non-transitory, computer-readable medium containing instructions that, when executed by a hardware-based processor, causes the processor to perform stages for dynamically capturing debug logs, the stages comprising:

detecting that a function of an application encountered an error during execution of the application;

retrieving a function call path between an entrant function and the function that encountered the error by executing a stack trace;

enabling debug logging at each function in the function call path; and

retrieving debug data from each function in the function call path.

9 . The non-transitory, computer-readable medium of claim 8 , wherein each function in the function call path includes a wrapper that causes the corresponding function to store values of registered variables at entry point and exit point when the corresponding function is called.

10 . The non-transitory, computer-readable medium of claim 9 , wherein enabling debug logging at each function in the function call path includes enabling a debug flag included in each function's wrapper that causes the corresponding function to execute a subfunction for logging the debug data.

11 . The non-transitory, computer-readable medium of claim 9 , further comprising disabling the debug flag at each function in the function call path after the debug data is logged.

12 . The non-transitory, computer-readable medium of claim 9 , wherein the debug data for each function in the function call path includes the stored values of registered variables and a state of a memory stack for the corresponding function.

13 . The non-transitory, computer-readable medium of claim 8 , wherein the function call path includes a list of functions in a call stack for a thread in which the error occurred.

14 . The non-transitory, computer-readable medium of claim 8 , wherein retrieving debug data includes logging the debug data to a log file.

15 . A system for dynamically capturing debug logs, comprising:

a memory storage including a non-transitory, computer-readable medium comprising instructions; and

a hardware-based processor that executes the instructions to carry out stages comprising:

detecting that a function of an application encountered an error during execution of the application;

retrieving a function call path between an entrant function and the function that encountered the error by executing a stack trace;

enabling debug logging at each function in the function call path; and

retrieving debug data from each function in the function call path.

16 . The system of claim 15 , wherein each function in the function call path includes a wrapper that causes the corresponding function to store values of registered variables at entry point and exit point when the corresponding function is called.

17 . The system of claim 16 , wherein enabling debug logging at each function in the function call path includes enabling a debug flag included in each function's wrapper that causes the corresponding function to execute a subfunction for logging the debug data.

18 . The system of claim 16 , further comprising disabling the debug flag at each function in the function call path after the debug data is logged.

19 . The system of claim 15 , wherein the debug data for each function in the function call path includes the stored values of registered variables and a state of a memory stack for the corresponding function.

20 . The system of claim 15 , wherein the function call path includes a list of functions in a call stack for a thread in which the error occurred.

Assignments (2)
CHANGE OF NAME Recorded May 8, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067355/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2022
From: DESAI, ANERI RAJIV; PAREKH, MANISHA GAMBHIR; BHALERAO, ANAND JAYSINGH; SANGODKAR, AMIT RATNAPAL
To: VMWARE, INC.
Reel/Frame 061421/0420 →