- Exceptions
- Crash
- ANR
- Errors
- Occurrence Count
- Unique Device Identifier (Device ID)
- Event Report
- Access
- Online Device
- Affected Device
- Device Exception Rate
- Exception Count Rates
- Launch Count
- Today's Device Exception Rate
- First Report Time
- Cumulative Affected Devices
- Cumulative Occurrences
- Hour/Cumulative
- Real Device/Emulator
- Data Update Time
- Issue ID
- Report ID
- Access address when crashed
- Client report ID
- Secondary reporting
- Symbol Table
- Search Dimension
Common Terms
Exceptions
An exception is a crash, ANR, or error that happens when an app is running.
Crash
A crash is when an app stops functioning properly and exits during use.
ANR
An ANR is an "Application Not Responding" prompt when the app is in use. It's on Android only.
Errors
An error is an actively reported exception, error or script (C#, Lua, JS, etc.) error.
Occurrence Count
An exception occurred and was recorded and reported is counted as one occurrence.
Unique Device Identifier (Device ID)
The marker used to uniquely identify a device is generated by the SDK by default and remains unchanged and effective until the application is uninstalled.
CrashSight uses Device ID to identify devices, i.e., if there are X event reports with the same Device ID, then those X reports will result in +X number of event occurrences, but +1 number of devices affected. Access and event reports come with Device ID information. The following is the default way of generating Device ID in CrashSight SDK on some popular platforms.
platform | default way of generating Device ID |
---|---|
Android | Generate UUID on first boot |
iOS | IDFV |
Windows | MAC address |
Event Report
When the CrashSight SDK's Event Report mechanism is triggered (such as a crash is automatically caught, see CrashSight Product Introduction for more details), CrashSight will automatically collect the information and report it.
Access
When the CrashSight SDK is initialized, a starting event report will be performed immediately and it is called access. The data generated by the access can be used to count the number of starts.
Online Device
Each device that has network connection or has been reported once is considered a online device. In a certain time range, a device that repeats network behavior is only considered one online device. (The device is deduplicated according to the unique device identifier)
Affected Device
A device that has had an exception is counted as an affected device. In a certain time range, a device that has had multiple exceptions is only counted as one affected device. (The device is deduplicated according to the unique device identifier)
Device Exception Rate
The ratio between the number of affected devices and online devices.
Exception Count Rates
The ratio of the number of occurrences to the number of network connections.
Launch Count
Each time the application is restarted after fully exiting is counted as one launch. (The SDK determines the total launch count specifically by launch report + exception report carrying the launch count to be cumulative)
Today's Device Exception Rate
The ratio of the number of exception-influenced devices to the number of online devices within the current day.
First Report Time
The time at which the issue was first reported to CrashSight.
Cumulative Affected Devices
The total number of affected devices from the time the issue was first reported to the system until the current time.
Cumulative Occurrences
The total number of occurrences from the time the Issue was first reported to the system until the current time.
Hour/Cumulative
The hourly window ranges from the current hour's 00:00 to 59:59. The cumulative window ranges from 00:00:00 to 23:59:59 of the current day.
Real Device/Emulator
Real Device: A real mobile physical device. Emulator: A emulator that can run on a personal computer and simulate the Android mobile system. (Most emulators will generate a new unique device identifier each time the app is launched, and cloud gaming devices also have this characteristic and will be marked as emulators).
Data Update Time
The update time of backend refresh statistical result data (The data update is an asynchronous backend update, the crash trend is updated about every 10 minutes by default).
Issue ID
After an exception is reported, it will be classified (the same exceptions are classified into one set, known as one Issue), the unique UUID of the corresponding issue is called the issue ID, which corresponds one-to-one with the Issue.
Report ID
A unique uuid generated when an exception is reported, called the report ID, which corresponds one-to-one with this report.
Access address when crashed
The address actually accessed by the program when an invalid memory access occurs. CrashSight can report the address accessed by the program when it crashes. Generally, the invalid memory is 0x0 when cuased by access to a null pointer, and is a large address when cuased by access to a wild pointer.
Client report ID
CrashSight SDK will generate a random UUID when handling a crash/error and report it together with the crash/error. This UUID is called the client report ID. The client report ID is the unique identifier of each report and can be used to search and locate the reported information. Developers can search for "expuid" in the client's logs to find the client report ID. Also, developers can search for the crash/error with the client report ID in "Advanced Search" page.
Secondary reporting
When a crash occurs, CrashSight will try to immediately report crash information to the server. However, due to various force majeure factors (such as user forced killing program, network errors, etc.), the processing and reporting of crash information may not be completed immediately. At the next startup, CrashSight will check whether there is any unreported crash records, and if so, it will attemp to upload the crash records. This process is called secondary reporting. It is worth noting that the crash information reported again may sometimes be missing, because the last crash information may not be completly processed.
Symbol Table
CrashSight needs symbol table to restore the stack. To upload the symbol table, please refer to Symbol Table Tool Usage Introduction.
In order to ensure data security, CrashSight will not ask you to upload the original symbol table file (so, dsym, pdb, etc.) directly, but use our symbol table tool to extract a stif file and then upload it.
Each symbol table has a unique UUID, if the uploaded symbol table UUID is the same as the previous one, CrashSight considers this symbol table to be a duplicate and will use the new symbol table to replace the old one (in other words, if you uploaded the wrong symbol table, you can use this mechanism to fix the error). When restoring the stack, CrashSight will prioritize matching the symbol table using the UUID, and if the match fails, it will use the version number + the library name to find the symbol table.
When uploading Android symbol table, please make sure your so file comes with debugging information. You can simply judge by the size of the stif file, if the generated stif file is very small (<=1kb), you may have used an so without debugging information to generate the symbol table. Such a symbol table will not be able to restore the stack successfully. For the method to get the so with debug information, please refer to Symbol table file format for each platform, and the generating method in unity and unreal engine.
Search Dimension
A rich set of issue filters is available on the CrashSight page, and the following are implications for the optional search dimensions.
search dimension | explanation | search dimension | explanation |
---|---|---|---|
Issue Last Report Time | The time when the issue was last reported | Issue First Report Time | Time when the issue was first reported |
Issue First Report Version | The version number when the issue was first reported | Issue Category | CrashSight’s classification of exception reports, such as Native crashes, C# errors, etc. |
Exception Category | Crash, ANR or Error | Issue Tag | Custom tags that can be set on the Issue List page |
Issue Status | The status of issue, which can be configured on the "Issue List" page | Bug Form Linked? | Whether the issue is linked to a bug form on TAPD or Jira, which can be configured on the "Issue List" page |
Issue Assignee | Issue assignee, which can be configured on the "Issue List" page | Version | The version number extracted by CrashSight SDK, which can be set through the interface |
Upload Time | Issue upload time | Occur Time | Issue occur time |
App Package Name/Bundle ID | Android package name, or iOS Bundle ID | Distribution Channel | Application distribution channels can be set through the interface |
Issue ID | The issue ID is displayed in the issue list. Reports of one issue have the same issue ID. | Crash ID | Crash ID generated by the server. Each report has a unique crash ID. |
Client Report ID | The report ID generated by the client when reporting. It can be viewed by searching for "expuid" in the log or in the report details. | User ID | Used to identify the user, which can be set through the interface. The default is "unknown" |
Device ID | Used to identify the device, see Device ID for details | Error Name | Error Name |
Error Message | Error Message | Original Device Model | The model extracted from the system API |
App Bits | 32-bit or 64-bit | OS Version | OS Version |
Error Process | Error Process Name | Error Thread | Error Thread Name |
App Run Time | Length of app running time | Is Simulator | Whether the issue happens on simulator |
Is System Exit | Whether CrashSight backend matches to system exit features | ROM | System ROM name (Android only) |
Custom Key | User-defined keywords, see Customized Data for details | Error Stack | The stack of the error thread |
Error Stack(Before Retrace) | Original stack before restore |