IP Library › Granted Patent US 11,734,156
Granted Patent B2
US 11,734,156 · App. 17/483,571 · Granted Aug 22, 2023

Crash localization using crash frame sequence labelling

Inventors: Chetan Bansal (Seattle, WA); Manish Shetty Molahalli (Karnataka, IN); Suman Kumar Nath (Redmond, WA); Siamak Ahari (Seattle, WA); Haitao Wang (Sammamish, WA); Sean A. Bowles (Seattle, WA); Kamil Ozgur Arman (Seattle, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F11/3636
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,734,156
App. No.
17/483,571
Granted
Aug 22, 2023
Kind
B2
Abstract

Machine-learned prediction of a blame frame of a crash stack. Specifically, a crash stack associated with a crash is parsed into a sequence of frames. The blame frame of the crash stack is estimated by, for each of a plurality of the sequence of frames, identifying a plurality of features of the corresponding frame, feeding the plurality of features to a neural network, and using the output of the neural network to make a prediction on whether the corresponding frame is a blame frame of the crash. If this is done during training time, the predicted blame frame can be compared against the actual blame frame, resulting in an adjustment of the neural network. Through appropriate featurization of the frames, and by use of the neural network, the prediction can be made cross-application and considering the context of the frame within the crash stack.

Claims (47)

1. A computing system comprising:

one or more processors; and

one or more computer-readable storage devices having thereon computer-executable instructions that are structured such that, if executed by the one or more processors, would cause the computing system to estimate a blame frame of a crash stack by performing the following:

parsing a crash stack associated with a crash into a sequence of frames; and

estimating a blame frame of the crash stack by, for each of a plurality of the sequence of frames, performing the following:

identifying a plurality of features of the corresponding frame;

feeding the plurality of features to a neural network;

using the model to obtain an output comprising (i) a rough estimate of an initial prediction of frames for selecting the blame frame and (ii) hidden data that affects attention applied by the neural network for selecting the blame frame from the initial prediction of frames; and

using the output of the neural network to make a prediction on whether the corresponding frame is the blame frame of the crash;

the computer-executable instructions being further structured such that estimation of the blame frame of a crash stack is performed during inference time using a previously trained neural network.

2. The computing system in accordance with claim 1 , the computer-executable instructions being further structured such that estimation of the blame frame is performed such that only one of the sequence of frames is estimated as the blame frame of the crash.

3. The computing system in accordance with claim 1 , the computer-executable instructions being further structured such that a conditional random fields (CRF) component is used to constrain the predictions such that only one of the sequence of frames is estimated to be the blame frame of the crash.

4. The computing system in accordance with claim 1 , the computer-executable instructions being further structured such that the feeding of the plurality of features to a neural network comprises feeding the plurality of features for each of the plurality of frames to a respective stage of a plurality of stages of the neural network.

5. The computing system in accordance with claim 1 , the computer-executable instructions being further structured such that estimation of the blame frame of a crash stack is performed during supervised learning, the computer-executable instructions being further structured such that, if the computer-executable instructions were executed, the computing system would further:

compare the predicted blame frame against an actual blame frame; and

based on the comparison, adjust the neural network.

6. The computing system in accordance with claim 5 , the computer-executable instructions being further structured such that the supervised learning begins with a neural network that was trained on crash stacks resulting from crashes spanning a plurality of applications, the supervised learning being performed on crash stacks resulting from crashes involving at least some applications that are not included within the plurality of applications.

7. The computing system in accordance with claim 1 , the neural network being a long short-term memory (LSTM) network.

8. The computing system in accordance with claim 1 , the neural network being a bidirectional long short-term memory (BiLSTM) network.

9. The computing system in accordance with claim 1 , a particular feature of the plurality of features of a particular frame of the sequence of frames including a semantic feature of the particular frame.

10. The computing system in accordance with claim 9 , the particular feature being a vector of a method or namespace of the particular frame.

11. The computing system in accordance with claim 1 , a particular feature of the plurality of features of a particular frame of the sequence of frames including a type of code referenced in the particular frame.

12. The computing system in accordance with claim 1 , a particular feature of the plurality of features of a particular frame of the sequence of frames including a position of the particular frame in the sequence of frames.

13. The computing system in accordance with claim 1 , the computer-executable instructions being further structured such that using the output of the neural network to make a prediction on whether the corresponding frame is a blame frame of the crash comprises:

using an attention component to identify at least one dependency between non-neighboring frames in the sequence of frames.

14. The computing system in accordance with claim 1 , the computer-executable instructions being further structured such that, if executed by the computing system, the computer-executable instructions would cause the computing system to further perform the following:

using the output of the neural network to make a prediction of a problem class of the crash.

15. A computer-executed method for estimating a blame frame of a crash stack, the method comprising:

parsing a crash stack associated with a crash into a sequence of frames; and

estimating a blame frame of the crash stack by, for each of a plurality of the sequence of frames, performing the following:

identifying a plurality of features of the corresponding frame;

feeding the plurality of features to a neural network;

using the model to obtain an output comprising (i) a rough estimate of an initial prediction of frames for selecting the blame frame and (ii) hidden data that affects attention applied by the neural network for selecting the blame frame from the initial prediction of frames; and

using the output of the neural network to make a prediction on whether the corresponding frame is the blame frame of the crash;

the computer-executable instructions being further structured such that estimation of the blame frame of a crash stack is performed during inference time using a previously trained neural network.

16. The computer-executed method in accordance with claim 15 , the feeding of the plurality of features to a neural network comprising feeding the plurality of features for each of the plurality of frames to a respective stage of a plurality of stages of the neural network.

17. The computer-executed method in accordance with claim 15 , further comprising:

using the output of the neural network to make a prediction of a problem class of the crash.

18. The computer-executed method in accordance with claim 15 , the method being performed on multiple crash stacks to make a prediction of the blame frame for each of the multiple crash stacks.

19. A computer program product comprising one or more computer-readable hardware storage devices having thereon computer-executable instructions that are structured such that, if executed by one or more processors of a computing system, would cause the computing system to perform a method for estimating a blame frame of a crash stack, the method comprising:

parsing a crash stack associated with a crash into a sequence of frames; and

estimating a blame frame of the crash stack by, for each of a plurality of the sequence of frames, performing the following:

identifying a plurality of features of the corresponding frame;

feeding the plurality of features to a neural network;

using the model to obtain an output comprising (i) a rough estimate of an initial prediction of frames for selecting the blame frame and (ii) hidden data that affects attention applied by the neural network for selecting the blame frame from the initial prediction of frames; and

using the output of the neural network to make a prediction on whether the corresponding frame is the blame frame of the crash;

the computer-executable instructions being further structured such that estimation of the blame frame of a crash stack is performed during inference time using a previously trained neural network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2021
From: BANSAL, CHETAN; MOLAHALLI, MANISH SHETTY; NATH, SUMAN KUMAR; AHARI, SIAMAK; WANG, HAITAO; BOWLES, SEAN A.; ARMAN, KAMIL OZGUR
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 057583/0806 →
Continuity (1)
Related Publication 20230091899A1 · Mar 23, 2023
Cited By (2)
US 12,293,575 US 12,346,237