# US 11,307,920 B2 · Automated crash recovery

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,307,920 B2
- Document ID: US11307920B2
- Status: Granted
- Kind: B2
- Application number: 16/696,734
- Filed: 2019-11-26
- Published: 2021-05-27
- Granted: 2022-04-19
- Earliest claimed: 2019-11-26
- Assignees: Disney Enterprises, Inc.
- Applicants: Disney Enterprises, Inc.
- Inventors: Gary Kagan; Nathan Lefler; Josh Phelps; James A. Corrigan-Colville; Benjamin Manning
- Web page: https://patentgrep.com/patent/US11307920B2

## CPC

- G06F 11/0778: {Dumping, i.e. gathering error/state information after a fault for later diagnosis}
- G06F 11/0715: {in a system implementing multitasking (multitasking per se G06F9/46)}
- G06F 11/0748: {in a remote unit communicating with a single-box computer node experiencing an error/fault (remote testing G06F11/2294)}
- G06F 11/079: {Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36)}
- G06F 11/3636: {by tracing the execution of the program}
- G06F 11/366: {using diagnostics (G06F11/0703 takes precedence)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods for improving operation of a user device running an application. The methods include collecting a first set of data corresponding to a run time environment of the application, collecting a second set of data corresponding to a crash of the application, identifying a cause of the crash based on the first set of data and a second set of data and determining the cause of the crash is associated with an application feature corresponding to a feature flag.

## Claims

### Claim 1

A method, comprising:
collecting a first set of data corresponding to a run time environment of an application running on a user device;
collecting a second set of data corresponding to a crash of the application;
identifying a portion of machine code for the application, comprising at least one of:
(i) identifying a cause of the crash based on the first set of data and the second set of data, determining the cause of the crash is associated with an application feature corresponding to a feature flag, and identifying the portion of machine code based on the application feature; or
(ii) determining that the cause of the crash is indeterminate, and identifying the portion of machine code based on the first set of data; and altering execution of the identified portion of machine code for the application.

### Claim 2 (depends on 1)

The method of claim 1, wherein altering execution of the identified portion of machine code for the application comprises:
disabling the application feature using the feature flag based on determining the cause of the crash is associated with the application feature.

### Claim 3 (depends on 1)

The method of claim 1, wherein the application feature corresponds to the portion of machine code and wherein the first set of data includes a memory location of the portion of the machine code.

### Claim 4 (depends on 3)

The method of claim 3, wherein the second set of data includes one or more stack traces corresponding to the crash.

### Claim 5 (depends on 4)

The method of claim 4, wherein determining the cause of the crash is associated with the application feature is based on identifying the memory location of the portion of the machine code within the one or more stack traces.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
sending, by the user device, information to a remote location via a network connection, wherein the information includes an indication that the cause of the crash is associated with the application feature.

### Claim 7 (depends on 6)

The method of claim 6, wherein the information is a crash report.

### Claim 8 (depends on 1)

The method of claim 1, wherein altering execution of the identified portion of machine code for the application comprises at least one of: (i) disabling execution of the identified portion of machine code or (ii) altering when the identified portion of machine code is executed.

### Claim 9

A user device comprising:
a volatile memory; and
a processor configured to execute an application, wherein the application includes an application feature corresponding to a feature flag, the application configured to perform operations, comprising:
collecting a first set of data corresponding to a run time environment of the application running on the user device;
collecting a second set of data corresponding to a crash of the application;
identifying a portion of machine code for the application, comprising at least one of:
(i) identifying a cause of the crash based on the first set of data and the second set of data, determining the cause of the crash is associated with the application feature, and identifying the portion of machine code based on the application feature; or
(ii) determining that the cause of the crash is indeterminate, and identifying the portion of machine code based on the first set of data; and altering execution of the identified portion of machine code for the application.

### Claim 10 (depends on 9)

The user device of claim 9, wherein altering execution of the identified portion of machine code for the application comprises:
disabling the application feature using the feature flag based on determining the cause of the crash is associated with the application feature.

### Claim 11 (depends on 10)

The user device of claim 10, wherein the application feature corresponds to the portion of machine code and wherein the first set of data includes an indication of a location within the volatile memory of the portion of the machine code.

### Claim 12 (depends on 11)

The user device of claim 11, wherein the second set of data includes one or more stack traces corresponding to the crash.

### Claim 13 (depends on 12)

The user device of claim 12, wherein determining the cause of the crash is associated with the application feature is based on comparing the first set of data and the second set of data.

### Claim 14

A method, comprising:
collecting a first set of data corresponding to a run time environment of an application running on a user device, wherein the application includes a plurality of application features, each of the plurality of application features corresponding to a respective feature flag;
collecting a second set of data corresponding to a first crash of the application;
identifying a portion of machine code for the application, comprising at least one of:
(i) identifying a cause of the first crash based on the first set of data and the second set of data, determining that the cause of the first crash of the application is associated with only a single application feature, and identifying the portion of machine code associated with the single application feature; or
(ii) determining that the cause of the first crash is indeterminate, and identifying the portion of machine code based on the first set of data; and altering execution of the identified portion of machine code for the application.

### Claim 15 (depends on 14)

The method of claim 14, wherein the user device sends information to a remote location via a network connection, wherein the information includes an indication that the cause of the first crash is associated with the single application feature.

### Claim 16 (depends on 14)

The method of claim 14, further comprising: determining that the cause of a second crash is associated with more than one application feature, and in response selecting a subset of the more than one application feature based on a third set of data corresponding to the run time environment of the application running on the user device.

### Claim 17 (depends on 16)

The method of claim 16, further comprising:
disabling the subset of the more than one application feature using their respective feature flags.

### Claim 18 (depends on 17)

The method of claim 17, wherein the user device sends information to a remote location via a network connection, wherein the information includes (i) a first indication that the cause of the second crash is associated with the more than one application feature and (ii) a second indication that disabling the subset of the more than one application feature mitigates the cause of the second crash.

### Claim 19 (depends on 14)

The method of claim 14, comprising: determining that the cause of the first crash is indeterminate, and in response selecting a countermeasure to mitigate the cause of the crash based on the first set of data.

### Claim 20 (depends on 19)

The method of claim 19, wherein the first set of data includes an application launch time and an application crash time, wherein the countermeasure is selected based on a difference between the application launch time and the application crash time.
