# US 9,436,533 B2 · System for monitoring and tracking application crashes occurring on different mobile devices

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

- Number: US 9,436,533 B2
- Document ID: US9436533B2
- Status: Granted
- Kind: B2
- Application number: 14/295,283
- Filed: 2014-06-03
- Published: 2015-12-03
- Granted: 2016-09-06
- Earliest claimed: 2014-05-30
- Assignees: Apteligent, Inc.
- Applicants: Apteligent, Inc.
- Inventors: Sean Hermany; Paul Lappas; Andrew Levy; Robert Kwok; Andrew Yousef; Kevin Su; Keith Dreibelbis
- Web page: https://patentgrep.com/patent/US9436533B2

## CPC

- G06F 11/0742: {in a data processing system embedded in a mobile device, e.g. mobile phones, handheld devices}
- G06F 11/0709: {in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems}
- G06F 11/0748: {in a remote unit communicating with a single-box computer node experiencing an error/fault (remote testing G06F11/2294)}
- G06F 11/0769: {Readable error formats, e.g. cross-platform generic formats, human understandable formats}
- G06F 11/0775: {Content or structure details of the error report, e.g. specific table structure, specific error fields}
- G06F 11/0778: {Dumping, i.e. gathering error/state information after a fault for later diagnosis}
- G06F 11/0787: {Storage of error reports, e.g. persistent data storage, storage using memory protection}
- G06F 11/3476: {Data logging (G06F11/14, G06F11/2205 take precedence)}
- G06F 11/366: {using diagnostics (G06F11/0703 takes precedence)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Some embodiments provide a system that allows application developers to track and monitor crashes that are occurring with their applications on various mobile devices. In some embodiments, the system includes an application programing interface (API) server that receives crash reports with raw crash data from the mobile devices and facilitates in assigning each crash report to one of several different crash processing servers. The crash processing server of some embodiments receives the raw crash data and translates obscure data in the raw crash data into a human or developer readable form.

## Claims

### Claim 1

A system comprising:
a plurality of crash processing servers, each including at least one crash processor of a plurality of different crash processors; and
an application programming interface (API) server that receives, from a plurality of different mobile devices, raw crash logs and facilitates in assigning each crash log to one of the plurality of different crash processors,
wherein a particular crash processor receives a particular crash log and performs a symbolication operation to provide one or more symbol names in order to present at least one crash report to an application developer.

### Claim 2 (depends on 1)

The system of claim 1 wherein each mobile device of the plurality of different mobile devices includes an application with an application monitor for reporting each detected application crash to the API server.

### Claim 3 (depends on 2)

The system of claim 2, wherein the application monitor is further for reporting a state of a mobile device at a time of a crash along with a detected application crash.

### Claim 4 (depends on 1)

The system of claim 1, wherein the API server facilitates in assigning a specific crash log to one of the plurality of different crash processors by adding the specific crash log to a task queue.

### Claim 5 (depends on 4)

The system of claim 4, wherein the task queue is implemented by a message queue bus that distributes each crash log to one of the plurality of different crash processors.

### Claim 6 (depends on 1)

The system of claim 1, wherein the particular crash processor is further to generate a hash code based on the particular crash log, wherein the hash code is used to determine a total number of occurrences a same crash as a crash specified in the particular crash log.

### Claim 7 (depends on 6)

The system of claim 6, wherein the crash processor performs the symbolication operation by placing the particular crash log in a mobile operating system (OS) version-free format in order to generate the hash code.

### Claim 8 (depends on 1)

The system of claim 1, wherein the plurality of different crash processors includes at least two tiers of crash processors, wherein a first tier crash processor performs a first level symbolication operation to provide one or more symbol names for methods that are mobile OS specific, wherein a second tier crash processor performs a second level symbolication operation to provide one or more symbol names for methods that are application specific.

### Claim 9 (depends on 8)

The system of claim 8, wherein the first tier crash processor performs the first level symbolication operation using a custom map file, wherein the custom map file provides mapping for a set of symbols for a set of OS specific methods that are redacted.

### Claim 10 (depends on 9)

The system of claim 9, wherein the second tier crash processor only performs the second level symbolication operation only if an application symbol map is accessible in a storage.

### Claim 11 (depends on 1)

The system of claim 1 further comprising a set of web-portal servers to provide the at least one crash report to the application developer.

### Claim 12 (depends on 1)

The system of claim 1 further comprising a set of storage servers for storing data processed by the plurality of different crash processors.

### Claim 13

A system comprising:
a plurality of crash processing servers, each including at least one crash processor in a plurality of different crash processors; and
an application programming interface (API) server that receives, from a plurality of different mobile devices, raw crash logs and facilitates in assigning each crash log to one of the plurality of different crash processors;
wherein a particular crash processor identifies an error specified in a particular crash log and stores the particular crash log in order to provide at least one crash report that presents the total number of occurrences of the error along with the particular crash log.

### Claim 14 (depends on 13)

The system of claim 13 wherein each mobile device of the plurality of different mobile devices includes an application with an application monitor for reporting each detected application crash to the API server.

### Claim 15 (depends on 14)

The system of claim 14, wherein the application monitor is further for reporting a state of a mobile device at a time of a crash along with a detected application crash.

### Claim 16 (depends on 15)

The system of claim 15, wherein the API server facilitates in assigning a specific crash log to one of the plurality of different crash processors by adding the specific crash log to a task queue.

### Claim 17 (depends on 16)

The system of claim 16, wherein the task queue is implemented by a message queue bus that distributes each crash log to one of the plurality of different crash processors.

### Claim 18 (depends on 13)

The system of claim 13, wherein at least one crash processor in the plurality of different crash processors is for performing a symbolication operation to provide one or more symbol names for a particular raw crash log.

### Claim 19 (depends on 13)

The system of claim 13, wherein at least one crash processor in the plurality of different crash processors is for performing a mapping operation to de-obfuscate obfuscated data in a particular raw crash log.

### Claim 20 (depends on 13)

The system of claim 13 further comprising a set of web-portal servers to provide the at least one crash report to an application developer.
