IP Library Granted Patent US 10,657,027
Granted Patent B2
US 10,657,027 · App. 16/241,296 · Granted May 19, 2020

Aggregating data for debugging software

Inventors: James H. Mulder (Wappingers Falls, NY); Purvi S. Patel (Rock Hill, SC); Patrice Salone (Clintondale, NY); Ralph A. Sharpe (Newburgh, NY); Girija Varanasi (Poughkeepsie, NY)
Assignee: International Business Machines Corporation
G06F11/3636G06F3/065G06F3/067G06F3/0619G06F11/366G06F11/362
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 10,657,027
App. No.
16/241,296
Granted
May 19, 2020
Kind
B2
Abstract

A method for obtaining data to debug an issue that affects a software application. In an embodiment, the method includes at least one computer processor receiving a request to obtain data associated with an issue that affects an executing software application. The method further includes determining a set of memory spaces utilized by the executing software application and one or more processes supporting the executing software application. The method further includes initiating a dump function to obtain data within the memory spaces of the determined set of memory spaces. The method further includes storing the data related to the dumped set of memory spaces by (i) high-speed capture and aggregation of data to volatile memory and (ii) spooling data within volatile memory to persistent memory for storage.

Claims (55)

1. A method for obtaining data to debug an issue that affects a software application, the method comprising:

determining, by one or more computer processors, a first set of memory spaces utilized by an executing software application;

determining, by one or more computer processors, a second set of memory spaces utilized by the one or more processes supporting the executing software application, wherein the second set of memory spaces are determined based on (i) one or more relationships between the executing software application and the one or more processes supporting the executing software application, and (ii) one or more relationships among the one or more processes supporting the executing software application;

identifying, by one or more computer processors, one or more dictates related to debugging the executing software application, wherein the one or more dictates are selected from the group consisting of: a maximum size for the data related to the dumped from among the determined first set of memory spaces and the determined second set of memory spaces, a scope of tracing associated with the determined first set of memory spaces and the determined second set of memory spaces, specifying one or more processes supporting the executing software application to dump, and an order to dump the determined first set of memory spaces and the determined second set of memory spaces;

determining, by one or more computer processors, one or more memory spaces to dump utilizing the dump function, from among the determined first set of memory spaces and the determined second set of memory spaces, based, at least in part, on the identified one or more dictates related to debugging the executing software application; and

initiating, by one or more computer processors, a dump function to obtain data within the memory spaces of the determined first set of memory spaces and the determined second set of memory spaces.

2. The method of claim 1 , further comprising:

detecting, by one or more computer processors, one or more deviations related to a service level agreement corresponding to the executing software application; and

in response to detecting the one or more deviations related to a service level agreement corresponding to the executing software application, initiating, by one or more computer processors, debugging of the executing software application.

3. The method of claim 1 , further comprising:

receiving, by one or more computer processors, a receiving a request to diagnose the executing software application; and

in response to receiving the request to diagnose the executing software application, initiating, by one or more computer processors, debugging of the executing software application.

4. The method of claim 1 , wherein relationships are determined based on information selected from the group consisting of a memory cataloging function, a process tracing function, a process tree, provisioning information for a process, indications associated with a memory space, and sharing data among two or more processes.

5. The method of claim 1 , further comprising:

filtering, by one or more computer processors, the determined first set of memory spaces and the determined second set of memory spaces to remove duplicate references corresponding to a memory space to dump.

6. The method of claim 1 , further comprising:

identifying, by one or more computer processors, information associated with the determined first set of memory spaces and the determined second set of memory, wherein the information includes: an ID corresponding to a memory space, one or more process IDs that access the memory space, and an indication identifying whether the memory space was released; and

storing, by one or more computer processors, the identified information within a report related to debugging the executing software application.

7. A computer program product for obtaining data to debug an issue that affects a software application, the computer program product comprising:

one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions readable/executable by one or more computer processors and further comprising:

program instructions to determine a first set of memory spaces utilized by an executing software application;

program instructions to determine a second set of memory spaces utilized by the one or more processes supporting the executing software application, wherein the second set of memory spaces are determined based on (i) one or more relationships between the executing software application and the one or more processes supporting the executing software application, and (ii) one or more relationships among the one or more processes supporting the executing software application;

program instructions to identify one or more dictates related to debugging the executing software application, wherein the one or more dictates are selected from the group consisting of: a maximum size for the data related to the dumped from among the determined first set of memory spaces and the determined second set of memory spaces, a scope of tracing associated with the determined first set of memory spaces and the determined second set of memory spaces, specifying one or more processes supporting the executing software application to dump, and an order to dump the determined first set of memory spaces and the determined second set of memory spaces;

program instructions to determine one or more memory spaces to dump utilizing the dump function, from among the determined first set of memory spaces and the determined second set of memory spaces, based, at least in part, on the identified one or more dictates related to debugging the executing software application; and

program instructions to initiate dump function to obtain data within the memory spaces of the determined first set of memory spaces and the determined second set of memory spaces.

8. The computer program product of claim 7 , further comprising:

program instructions to detect one or more deviations related to a service level agreement corresponding to the executing software application; and

in response to detecting the one or more deviations related to a service level agreement corresponding to the executing software application, program instructions to initiate debugging of the executing software application.

9. The computer program product of claim 7 , further comprising:

program instructions to receive a receiving a request to diagnose the executing software application; and

in response to receiving the request to diagnose the executing software application, program instructions to initiate debugging of the executing software application.

10. The computer program product of claim 7 , wherein relationships are determined based on information selected from the group consisting of a memory cataloging function, a process tracing function, a process tree, provisioning information for a process, indications associated with a memory space, and sharing data among two or more processes.

11. The computer program product of claim 7 , further comprising:

program instructions to filter the determined first set of memory spaces and the determined second set of memory spaces to remove duplicate references corresponding to a memory space to dump.

12. The computer program product of claim 7 , further comprising:

program instructions to identify information associated with the determined first set of memory spaces and the determined second set of memory, wherein the information includes: an ID corresponding to a memory space, one or more process IDs that access the memory space, and an indication identifying whether the memory space was released; and

program instructions to store the identified information within a report related to debugging the executing software application.

13. A computer system for obtaining data to debug an issue that affects a software application the computer system comprising:

one or more computer processors;

one or more computer readable storage media;

program instructions stored on the computer readable storage media for reading/execution by at least one of the one or more computer processors, the program instructions further comprising:

program instructions to determine a first set of memory spaces utilized by an executing software application;

program instructions to determine a second set of memory spaces utilized by the one or more processes supporting the executing software application, wherein the second set of memory spaces are determined based on (i) one or more relationships between the executing software application and the one or more processes supporting the executing software application, and (ii) one or more relationships among the one or more processes supporting the executing software application;

program instructions to identify one or more dictates related to debugging the executing software application, wherein the one or more dictates are selected from the group consisting of: a maximum size for the data related to the dumped from among the determined first set of memory spaces and the determined second set of memory spaces, a scope of tracing associated with the determined first set of memory spaces and the determined second set of memory spaces, specifying one or more processes supporting the executing software application to dump, and an order to dump the determined first set of memory spaces and the determined second set of memory spaces;

program instructions to determine one or more memory spaces to dump utilizing the dump function, from among the determined first set of memory spaces and the determined second set of memory spaces, based, at least in part, on the identified one or more dictates related to debugging the executing software application; and

program instructions to initiate dump function to obtain data within the memory spaces of the determined first set of memory spaces and the determined second set of memory spaces.

14. The computer system of claim 13 , further comprising:

program instructions to detect one or more deviations related to a service level agreement corresponding to the executing software application; and

in response to detecting the one or more deviations related to a service level agreement corresponding to the executing software application, program instructions to initiate debugging of the executing software application.

15. The computer system of claim 13 , wherein relationships are determined based on information selected from the group consisting of a memory cataloging function, a process tracing function, a process tree, provisioning information for a process, indications associated with a memory space, and sharing data among two or more processes.

16. The computer system of claim 13 , further comprising:

program instructions to filter the determined first set of memory spaces and the determined second set of memory spaces to remove duplicate references corresponding to a memory space to dump.

17. The computer system of claim 13 , further comprising:

program instructions to identify information associated with the determined first set of memory spaces and the determined second set of memory, wherein the information includes: an ID corresponding to a memory space, one or more process IDs that access the memory space, and an indication identifying whether the memory space was released; and

program instructions to store the identified information within a report related to debugging the executing software application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2019
From: MULDER, JAMES H.; PATEL, PURVI S.; SALONE, PATRICE; SHARPE, RALPH A.; VARANASI, GIRIJA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047920/0171 →
Continuity (2)
Continuation 15494649 · Apr 24, 2017
Related Publication 20190138429A1 · May 9, 2019
Cited By (1)
US 12,602,276