IP Library Granted Patent US 11,307,922
Granted Patent B2
US 11,307,922 · App. 17/160,021 · Granted Apr 19, 2022

Application crash analysis techniques when memory dump and debug symbols are not co-located

View Patent ↗
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 11,307,922
App. No.
17/160,021
Granted
Apr 19, 2022
Kind
B2
Abstract

Distributed architectures that can generate a crash report without concurrent access to debug symbols and a memory dump. Besides grabbing generic information from a memory dump, which most debuggers provide (e.g., call stack traces for all threads), developer-provided scripts can grab application-specific details such as tables of open protocol client connections and so-forth. This extraction can take place at a customer site where a crash occurred and can proceed without the use of debug symbols. The extraction can generate a crash report which can be sent back from the field. Once in the hands of engineering (e.g., at a provider site where debug symbols are extant but the memory dump is not), debug symbols can then be used in an annotation phase to fill in missing details (e.g., the precise source files and line numbers corresponding to call stack traces) without access to the original crash dump.

Claims (34)

1. A system, comprising:

a memory that stores computer executable components; and

a processor that executes computer executable instructions stored in the memory, wherein the computer executable instructions comprise:

prior to receiving, from a customer device at a customer site, crash report data representative of a portion of memory dump data, compiling source code of an application, resulting in an executable file of the application and debug symbols associated with the application;

receiving the crash report data, wherein the crash report data is generated in response to the debug symbols being determined not to have been locally available to the customer device;

extracting, from the crash report data, a name and a machine code offset of a function being executed at a time that a crash event occurred; and

in response to applying the debug symbols to the crash report data, annotating the crash report data with source file location information that specifies a line of the source code of the application being executed at the time of the crash event.

2. The system of claim 1 , wherein the memory dump data is generated at the customer site in response to the crash event being determined to have occurred during execution of the application at the customer site.

3. The system of claim 1 , wherein the processor is situated at a provider site that excludes the memory dump data other than the portion, and wherein a first size of the portion is at least an order of magnitude smaller than a second size of the memory dump data.

4. The system of claim 1 , wherein the operations further comprise, prior to the receiving of the crash report data, transmitting the executable file of the application to the customer device and storing the debug symbols to a provider data store that is local to the system.

5. The system of claim 1 , wherein the operations further comprise determining typespec data that identifies a data structure referenced by the debug symbols, and wherein the typespec data identifies information referenced by the debug symbols that has been determined, according to a defined criterion, to be useful to diagnose a crash of the application.

6. The system of claim 5 , wherein the operations further comprise, in response to applying the typespec data to the debug symbols, generating typeinfo data that is representative of configurable subset of the debug symbols.

7. The system of claim 6 , wherein the operations further comprise transmitting an installation package to the customer device, wherein the installation package comprises the executable file of the application and the typeinfo data, and wherein the installation package excludes the debug symbols that are not included in the configurable subset represented by the typeinfo data.

8. The system of claim 7 , wherein a first size of the debug symbols is at least an order of magnitude larger than a second size of the typeinfo data.

9. The system of claim 7 , wherein the installation package further comprises script data indicative of instructions for extraction of relevant information identified by the typeinfo data from the memory dump data.

10. The system of claim 9 , wherein the script data is determined during generation of the source code of the application.

11. The system of claim 9 , wherein the script data is determined or updated following the compiling of the source code of the application.

12. The system of claim 9 , wherein the script data is determined by a creator of the application.

13. A non-transitory computer-readable medium comprising instructions that, in response to execution, cause a system comprising a processor to perform operations, comprising:

prior to receiving, from a customer device at a customer site, crash report data representative of a portion of memory dump data, compiling source code of an application, resulting in an executable file of the application and debug symbols associated with the application;

receiving the crash report data, wherein the crash report data is generated in response to the debug symbols not being locally available to the customer device;

extracting, from the crash report data, a name and a machine code offset of a function being executed at a time that a crash event occurred; and

in response to applying the debug symbols to the crash report data, annotating the crash report data with source file location information that specifies a line of the source code of the application being executed at the time of the crash event.

14. The non-transitory computer-readable medium of claim 13 , wherein the memory dump data is generated at the customer site in response to the crash event having occurred during execution of the application at the customer site.

15. The non-transitory computer-readable medium of claim 13 , wherein the processor is located at a provider site that excludes the memory dump data other than the portion, and wherein a first size of the memory dump data is at least a defined order of magnitude larger than a second size of the portion of the memory dump data.

16. The non-transitory computer-readable medium of claim 15 , wherein the portion is specified by typeinfo data that is representative of a configurable subset of the debug symbols that was generated in response to compiling the source code for the application.

17. A method, comprising:

prior to receiving crash report data, compiling, by a device comprising a processor, source code, the compiling resulting in generation of an executable file of an application and debug symbols associated with the application;

receiving, by the device, the crash report data from a customer site, wherein the crash report is representative of a portion of memory dump data and the crash report data is generated in response to the debug symbols not being locally available to the customer device;

extracting, by the device and from the crash report data, a name and a machine code offset of a function being executed at a time that a crash event occurred; and

in response to applying the debug symbols to the crash report data, annotating, by the device, the crash report data with source file location information that specifies a line of the source code of the application being executed at the time of the crash event.

18. The method of claim 17 , further comprising, prior to receiving the crash report data, transmitting, by the device, the executable file of the application to the customer device and storing the debug symbols to a provider data store that is local to the device.

19. The method of claim 17 , further comprising determining, by the device, typespec data that identifies a data structure referenced by the debug symbols, wherein the typespec data identifies information referenced by the debug symbols that has been determined to be useful to diagnose a crash of the application.

20. The method of claim 19 , further comprising, in response to applying the typespec data to the debug symbols, generating, by the device, typeinfo data that is representative of configurable subset of the debug symbols.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2021
From: KOROPOFF, BRIAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055051/0925 →