The Backtrace team has been hard at work this summer cooking up some new features. In this post, we’ll take a quick tour through some of the new capabilities, the benefits you’ll see, and how you can start to make use of them. Here’s a snapshot of what’s included in this month product update:
- Synchronous Post
- Prebuilt Binaries for Crashpad on Windows 64/32
- Preview of Console 2.0
- New Submission Endpoint
- Release Notes Portal
In order to efficiently process the stream of incoming errors from your endpoints, Backtrace has historically supported an asynchronous error and object processing architecture. With this architecture, a submitter, such as a server or a consumer application, does not need to wait for Backtrace to perform object analysis work. This results in faster error report generation and application recovery.
Backtrace now also supports a more sophisticated client-side error submission mechanism called synchronous post. With the synchronous post, applications will be able to detect whether a submitted error is a known bug versus a newly introduced one, and then dynamically modify submission behavior as a result. Some of our customers have already begun utilizing this capability to dynamically attach logs, full heap dumps, and modify granularity of data based on this distinction.
Synchronous posts are enabled with API tokens containing the
sync:post capability and the error submission returns:
- On failure, a detailed error message
- On success:
- The fingerprint of the error
- A receive identifier for the object
- The object identifier
- Whether or not the fingerprint of the error has been seen before
You can enable this feature by setting the
--capability of the token you use to be
sync:post as opposed to
morgue token create --project=[project] --capability=sync:post
See the most up to date morgue readme posted on Github for more details.
Once enabled, developers must specify an attribute
_mod_sync=1 in their error submissions to signify that the submitter would like to wait for a response. If you are using Crashpad, you would set an annotation as follows:
std::map<std::string, std::string> annotations;
annotations[“_mod_sync”] = 1;
rc = client.StartHandler(handler,
If you are using HTTP Submission:
curl -v --data-binary @example_minidump.dmp 'https://testing.company.com:6098/post?format=minidump&token=7e7f38ea321471dfdf76adad1bd101c4ec1010dd6eee113d3wesds137179ed9c3&version=1.0&_mod_sync=1'
With this new capability, you can now incorporate more sophisticated error submission logic into the crash reporting client.
Prebuilt Binaries for Crashpad on Windows 64/32
One of the more arduous tasks for a software engineer implementing crash reporting for C/C++ is compiling the commonly used Crashpad library. There are numerous dependencies required, and the process is prone to human errors. Backtrace is removing this complicated step by providing prebuilt binaries for Crashpad on Windows on 32-bit and 64-bit platforms, with plans for extending support to Mac and Linux in the future.
This is our first step before introducing a new Visual Studio plugin for Crashpad.
For each platform, we provide static and dynamic versions of the library under both release and debug build configurations. We maintain a stable build that goes through additional quality assurance by Backtrace, as well as daily unstable builds (experimental). The Backtrace build of Crashpad includes a few extensions to upstream open-source:
- API extensions for generating dumps from specific exception objects
- Support for dynamic build configurations
- Coming soon: file attachment support
All our patches and modifications will be submitted as patches upstream as well, and we will aim to minimize divergence from the main project. Find our packages at https://get.backtrace.io/crashpad/builds.
Preview of Console 2.0
Some of you have heard us talking about Console 2.0, Backtrace’s new design. We’re pleased to say that we’ve made a lot of progress in the last few weeks and are planning to make it available incrementally to our customers over the next few weeks. Check out the Sneak Peek blog, and watch out for your invitations! If you have not received one, but are interested, please reach out to email@example.com to request access.
New Submission Endpoint
We have made a new submission end point available, allowing you to submit errors and symbols through https://submit.backtrace.io on port 443. Please see upcoming application integration instructions for details or contact support@backtrace,io.
Release Notes Portal
We developed a new portal to help our customers keep track of the latest releases of the Backtrace platform, with support for RSS subscriptions. The new portal also features releases by component. Stay up to date and check it out at https://releases.backtrace.io. Be sure to bookmark this site to stay up to date on the latest updates!