IP Library Granted Patent US 7,191,364
Granted Patent B2
US 7,191,364 · App. 10/713,867 · Granted Mar 13, 2007

Automatic root cause analysis and diagnostics engine

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 7,191,364
App. No.
10/713,867
Granted
Mar 13, 2007
Kind
B2
Abstract

A large portion of software bugs are related to hangs. Analyzing and diagnosing hang-related bugs involves capturing data from a hung program and extracting attributes from the captured data. Extracting attributes from the capture data provides a scheme to determine relevant characteristics of the hang. Moreover, the extracted attributes may be compared to known issues and, based on that comparison, a bug may be classified as known or unknown. Alternatively, triage may be performed on the client computing device in order to determine the potential cause of the hang event. Once the potential cause of the hang event has been determined, troubleshooting steps may be performed on the client computing device to quarantine it. Ultimately, if the hang-inducing bug is known, a user may be provided with a solution to the bug. Alternatively, if the bug is unknown, implementations of the invention send the captured data to be analyzed and fixed by the software's provider.

Claims (51)

1. A method of troubleshooting software hangs on a computing device, the method comprising:

capturing data associated with a hang;

extracting attributes associated with the hang;

comparing the extracted attributes to a database of issues to troubleshoot the hang;

performing on the computing device the comparison of extracted attributes to the database of issues;

assigning the extracted attributes a value based on a history of hang events;

determining a potential culprit for the hang event based on the assigned values; and

performing troubleshooting steps to quarantine the potential culprit;

wherein performing troubleshooting steps to quarantine the potential culprit comprises renaming a file.

2. The method of claim 1 further comprising:

packaging the captured data into a file; and

assigning the packaged file an identification value for tracking the hang.

3. The method of claim 2 wherein the identification value comprises a hash value associated with a call stack.

4. The method of claim 1 , wherein comparing the extracted attributes further comprises:

identifying the hang; and

providing a user with a solution to the hang, if the solution is available.

5. The method of claim 1 , wherein capturing data associated with a hang further comprises extending a schema by using a data capture program extension.

6. The method of claim 1 , wherein extracting attributes to diagnose the hang further comprises extending an attribute extraction schema through the use of an attribute plugin.

7. The method claim 1 , wherein the database of issues comprises data to represent at least one hang event.

8. The method of claim 1 , wherein the potential culprit comprises one of a file, module, process, thread, block of code, or instruction.

9. The method of claim 1 , further comprising updating the history of hang events.

10. A computer readable storage medium comprising executable instructions for performing a method of troubleshooting software hangs on a computing device, the method comprising:

capturing data associated with a hang;

extracting attributes associated with the hang;

comparing the extracted attributes to a database of issues to troubleshoot the hang;

performing on the computing device the comparison of extracted attributes to the database of issues;

assigning the extracted attributes a value based on a history of hang events;

determining a potential culprit for the hang event based on the assigned values; and

performing troubleshooting steps to quarantine the potential culprit;

wherein performing troubleshooting steps to quarantine the potential culprit comprises renaming a file.

11. The computer readable storage medium of claim 10 , the method further comprising:

packaging the captured data into a file; and

assigning the packaged file an identification value for tracking the hang.

12. The method of claim 10 , wherein the identification value comprises a hash value associated with a call stack.

13. The computer readable storage medium of claim 10 , the method further comprising:

identifying the hang; and

providing a user with a solution to the hang, if the solution is available.

14. The method of claim 10 , wherein capturing data associated with a hang further comprises extending a schema by using a data capture program extension.

15. The method of claim 10 , wherein extracting attributes to diagnose the hang further comprises extending an attribute extraction schema through the use of an attribute plugin.

16. The method claim 10 , wherein the database of issues comprises data to represent at least one hang event.

17. The method of claim 10 , wherein the potential culprit comprises one of a file, module, process, thread, block of code, or instruction.

18. The method of claim 10 , further comprising updating the history of hang events.

19. A computer-enabled system comprising:

means for capturing data associated with a hang;

means for extracting attributes associated with the hang;

means for comparing the extracted attributes to a database of issues to troubleshoot the hang;

means for performing on the computing device the comparison of extracted attributes to the database of issues;

means for assigning the extracted attributes a value based on a history of hang events;

means for determining a potential culprit for the hang event based on the assigned values; and

means for performing troubleshooting steps to quarantine the potential culprit;

wherein performing troubleshooting steps to quarantine the potential culprit comprises renaming a file.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE RECORDAL TO REMOVE INADVERTENTLY RECOREDED PROPERTIES SHOWN IN ATTACHED SHEET PREVIOUSLY RECORDED AT REEL: 047681 FRAME: 0916. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 18, 2019
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: SERVICENOW, INC.
Reel/Frame 049797/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2018
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: SERVICENOW, INC.
Reel/Frame 047681/0916 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2003
From: HUDSON, WILLIAM HUNTER; FINK, REINER; PEASE, GEOFF; MAFFEO, GERALD; MENG, YI; LEVINE, ERIC; BLISS, ANDREW L.; VACHON, ANDRE; SHARMA, KSHITIZ K.; SHAN, JING
To: MICROSOFT CORPORATION
Reel/Frame 014710/0266 →