When you’re trying to triage, prioritize, and fix one or more major application failures is not a good time to hunt for your debug symbols or third-party symbol libraries. Just finding and getting all required debug symbols into a state where they can be used for reading a minidump (or other crash dump) takes precious minutes. You know the frustration of spending hours configuring your debug analysis environment before getting your hands on the usable callstacks with full stack frame information like function names and line numbers.
Meanwhile, your crash dump file information can’t be properly symbolicated, the callstacks are inaccurate or incomplete, deduplication and similarity analysis is stalled, and the debug process is functioning inefficiently.
Mining Your Minidumps
For the want of debug symbols, the process is delayed and the cost of the crash goes up. The impact of symbol management on the debug process has been overlooked. Too often, symbol generation is treated like another administrative set-up task when the build pipeline is first set up, and not updated to ensure it’s used appropriately with your debug analysis tools.
Backtrace set out to fix the painful realities and accelerate the process when we developed core technology that has changed the way symbol management and symbolication is handled. With Backtrace:
- Your development teams integrate your build system with Backtrace so symbols are collected automatically from wherever the team currently stores the information.
- Backtrace provides support for Symbol Servers, which allows the system to automatically retrieve symbols from wherever they might be stored, without needing to know details about product names or release versions.
- Backtrace can retrieve symbols from various locations, including Amazon S3, or any public or privately configured symbol server, providing more seamless points of contact than anyone in the industry.
- Callstacks automatically include third-party symbols without human intervention, using capabilities that are unique to the industry. Third-party libraries include Electron, Microsoft, and several other commercial vendors including popular graphics libraries and games frameworks.
- Any missing symbols are flagged and there is a wizard to help you locate and add them to complete a callstack.
- Data is converted into a proprietary format that allows for symbolication, and post-mortem analysis, to occur at scale, with an orders of magnitude greater reduction in latency compared to other environments.
More Accurate Callstacks? Yes please!
This is all about eliminating speed bumps in the debugging process. Having more accurate and complete callstacks also speeds deduplication, helping to better support more useful triage and prioritization. This is critical too, as an early diagnosis of results from incoming crash reporting software accelerates incident response. Knowing whether crash reports relate to the same bug impacting a large number of users or to a number of different bugs affecting a small group of users guides response. So do things like learning in real time if a new release has introduced a major regression. Backtrace has deduplication algorithms that improve upon what is state of the art in our industry, including techniques to support more accurate unwinding of the callstack that help you manage software crashes more efficiently. They accelerate your ability to triage and prioritize fatal errors that have the greatest impact on the organization.
In Backtrace, symbolication and deduplication work in concert to ensure your teams have the information needed to resolve incidents faster than any other platform, earlier than you otherwise would. You have greater precision. Other environments do not provide third-party implementations that seamlessly populate symbols from these libraries. Backtrace is also the only one to flag missing symbols and provide a wizard to help you.
With other platforms, the callstacks—the foundation of building a solution—are faulty, slowing you down and putting your teams at a disadvantage. Not to mention, costing you money.