IP Library Granted Patent US 8,607,098
Granted Patent B2
US 8,607,098 · App. 13/116,179 · Granted Dec 10, 2013

Generating appropriately sized core files used in diagnosing application crashes

Inventors: Amar Devegowda (Bangalore, IN); Douglas J. Griffith (Georgetown, TX); Venkataraghavan Lakshminarayanachar (Bangalore, IN); Lohitashwa Thyagaraj (Bangalore, IN)
Assignee: International Business Machines Corporation
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 8,607,098
App. No.
13/116,179
Granted
Dec 10, 2013
Kind
B2
Abstract

A method, system and computer program product for generating appropriately sized core files used in diagnosing application crashes. An instruction pointer corresponding to the instruction that led to the application crash is identified. Address ranges of the garbage collection module and the compiler module are obtained. A determination is made as to whether the address of the instruction pointer lies within any of these address ranges for each stack frame in a crash stack. If it does not, then read or write instructions executed prior to the instruction that led to the application crash are identified for each stack frame in the crash stack. If a value of a register involved in such read or write instructions is within the address range of the compiled code buffers and/or heap, then the compiled code buffers and/or heap need to be included in the core file; otherwise, they do not.

Claims (48)

1. A method for generating an appropriately sized core file, the method comprising:

obtaining an address range of one or more of compiled code buffers and a heap;

identifying one or more read or write instructions prior to an instruction that led to an application crash;

generating a record indicating whether one or more of said compiled code buffers and said heap need to be included in a core file in response to whether a value of a register involved in said one or more read or write instructions is within said address range of one or more of said compiled code buffers and said heap; and

generating, by a processor, said core file in response to said record.

2. The method as recited in claim 1 further comprising:

identifying an instruction pointer corresponding to an address of said instruction that led to said application crash.

3. The method as recited in claim 2 further comprising:

obtaining an address range of one or more of a garbage collection module and a compiler module.

4. The method as recited in claim 3 further comprising:

determining if an address of said instruction pointer lies within said address range of one or more of said garbage collection module and said compiler module.

5. The method as recited in claim 4 further comprising:

generating said record indicating whether said compiled code buffers and said heap need to be included in said core file in response to whether said address of said instruction pointer lies within said address range of one or more of said garbage collection module and said compiler module.

6. The method as recited in claim 5 , wherein said record indicates that said compiled code buffers and said heap are not needed to be included in said core file in response to said address of said identified instruction pointer not lying within said address range of said garbage collection module and said compiler module for each stack frame in a crash stack and in response to said value of said register involved in said one or more read or write instructions not lying within said address range of said compiled code buffers and said heap for each stack frame in a crash stack.

7. The method as recited in claim 1 further comprising:

receiving a segmentation violation in response to said application crash.

8. A computer program product embodied in a non-transitory computer-readable storage medium for generating an appropriately sized core file, the computer program product comprising the programming instructions for:

obtaining an address range of one or more of compiled code buffers and a heap;

identifying one or more read or write instructions prior to an instruction that led to an application crash;

generating a record indicating whether one or more of said compiled code buffers and said heap need to be included in a core file in response to whether a value of a register involved in said one or more read or write instructions is within said address range of one or more of said compiled code buffers and said heap; and

generating said core file in response to said record.

9. The computer program product as recited in claim 8 further comprising the programming instructions for:

identifying an instruction pointer corresponding to an address of said instruction that led to said application crash.

10. The computer program product as recited in claim 9 further comprising the programming instructions for:

obtaining an address range of one or more of a garbage collection module and a compiler module.

11. The computer program product as recited in claim 10 further comprising the programming instructions for:

determining if an address of said instruction pointer lies within said address range of one or more of said garbage collection module and said compiler module.

12. The computer program product as recited in claim 11 further comprising the programming instructions for:

generating said record indicating whether said compiled code buffers and said heap need to be included in said core file in response to whether said address of said instruction pointer lies within said address range of one or more of said garbage collection module and said compiler module.

13. The computer program product as recited in claim 12 , wherein said record indicates that said compiled code buffers and said heap are not needed to be included in said core file in response to said address of said identified instruction pointer not lying within said address range of said garbage collection module and said compiler module for each stack frame in a crash stack and in response to said value of said register involved in said one or more read or write instructions not lying within said address range of said compiled code buffers and said heap for each stack frame in a crash stack.

14. The computer program product as recited in claim 8 further comprising the programming instructions for:

receiving a segmentation violation in response to said application crash.

15. A system, comprising:

a memory unit for storing a computer program for generating an appropriately sized core file; and

a processor coupled to said memory unit, wherein said processor, responsive to said computer program, comprises

circuitry for obtaining an address range of one or more of compiled code buffers and a heap;

circuitry for identifying one or more read or write instructions prior to an instruction that led to an application crash;

circuitry for generating a record indicating whether one or more of said compiled code buffers and said heap need to be included in a core file in response to whether a value of a register involved in said one or more read or write instructions is within said address range of one or more of said compiled code buffers and said heap; and

circuitry for generating said core file in response to said record.

16. The system as recited in claim 15 , wherein said processor further comprises:

circuitry for identifying an instruction pointer corresponding to an address of said instruction that led to said application crash.

17. The system as recited in claim 16 , wherein said processor further comprises:

circuitry for obtaining an address range of one or more of a garbage collection module and a compiler module.

18. The system as recited in claim 17 , wherein said processor further comprises:

circuitry for determining if an address of said instruction pointer lies within said address range of one or more of said garbage collection module and said compiler module.

19. The system as recited in claim 18 , wherein said processor further comprises:

circuitry for generating said record indicating whether said compiled code buffers and said heap need to be included in said core file in response to whether said address of said instruction pointer lies within said address range of one or more of said garbage collection module and said compiler module.

20. The system as recited in claim 19 , wherein said record indicates that said compiled code buffers and said heap are not needed to be included in said core file in response to said address of said identified instruction pointer not lying within said address range of said garbage collection module and said compiler module for each stack frame in a crash stack and in response to said value of said register involved in said one or more read or write instructions not lying within said address range of said compiled code buffers and said heap for each stack frame in a crash stack.

Assignments (2)
CONVEYOR IS ASSIGNING UNDIVIDED 50% INTEREST Recorded Jan 29, 2018
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: SERVICENOW, INC.; INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 045185/0323 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2011
From: DEVEGOWDA, AMAR; GRIFFITH, DOUGLAS J.; LAKSHMINARAYANACHAR, VENKATARAGHAVAN; THYAGARAJ, LOHITASHWA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026343/0183 →
Continuity (1)
Related Publication 20120304015A1 · Nov 29, 2012