BugSplat Key Concepts

The concepts below help explain the building blocks of BugSplat, from the crash report to dump files and navigating in the app. They'll help you quickly dive into the language of defeating nasty and difficult bugs.


Crash Report

This is the foundational unit of the BugSplat universe. BugSplat client libraries integrate with your code to capture exception information and send it to the BugSplat website. This package of information is called a crash report.


Database

Databases are the highest order of organization inside of BugSplat.

Each Database usually corresponds with a different product that your company offers. Some users have only one database, but larger teams and companies will generally find value in utilizing multiple Database to keep their crashes from different products or versions of the same product separate.


Dump File

This file contains the program state such as call stack, register values, loaded modules and system information. In many environments, BugSplat creates a minidump file automatically at the time of a crash.


Error Handler

This is the logic to mitigate an error scenario and resume program execution or to capture forensic data for post-mortem analysis and exit program.


Exception

This is an anomalous or exceptional condition requiring special processing during computation.


Handled Exception

This is the exception that has logic to mitigate an error scenario such as to display a dialog to the user or reset values to their defaults. A program can continue execution after a handled exception.


Key Crash

This is an abstract object that represents all crashes that share the same x stack frames from the stack key to the top of the call stack. This may be a BugSplat-specific construct.


Stack Frame

This is one level of the call stack.


Stack Key

Stack Key is a BugSplat term for a specific function name and line number that is used to group crashes on the Summary page. By default the Stack Key is the function name and line number at the top of a stack of the crashing thread. You can create a Subkey to group the call stack at a different level of the crashing thread. Subkeying is useful regrouping crashes that would otherwise be grouped by uninteresting stack frames such as system calls or third party code. For more information about creating Subkeys, please see this article.


Symbols

These are files that contain information to map information in the minidump file to file names and line numbers in source code.


Unhandled Exception

This is the unexpected exception where the surrounding code does not have logic to handle the scenario and can put the program into an unknown state.


Version

This is a version you can easily separate releases of your code inside of BugSplat. Typically, users will create a new version for each new release.

Using Versions is a useful way to track crashes that you want to keep separate. Many users find value in comparing and tracking crash rates, top crashes, and particularly tricky-to-fix crashes across their multiple Versions