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… Read More
Have you ever had an
assert get triggered only to result in a useless core dump with missing variable information or an invalid callstack? Common factors that go into selecting a C or C++ compiler are: availability, correctness, compilation speed and application performance. A factor that is often neglected is debug information quality, which symbolic debuggers use to reconcile application executable state to the source-code form that is familiar to most software engineers. When production builds of an application fail, the level of access to program state directly impacts the ability for a software engineer to investigate and fix a bug. If a compiler has optimized out a variable or is unable to express to a symbolic debugger how to reconstruct the value of a variable, the engineer’s investigation process is significantly impacted. Either the engineer has to attempt to recreate the problem, iterate through speculative fixes or attempt to perform prohibitively expensive debugging, such as reconstructing program state through executable code analysis.
Debug information quality is in fact not proportionally related to the quality of the generated executable code and wildly varies from compiler to compiler. This blog post compares debug information quality between two popular compilers: gcc and clang. In this blog post, we will introduce the topic of optimization and highlight examples of their impact on debuggability. This blog post is part of a longer series, in the next blog post we’ll do finer grained analysis directly comparing
clang in real world and synthetic programs.
Our CEO, Abel Mathew, did a guest appearance at the end of last year on CPPCast. CPPCast is a podcast for C++ devs by C++ devs (hosts Rob Irving and Jason Turner). Rob, Jason, and Abel talk about C++ issues and items such as Zap CC, Conan joining JFrog, and how developers use C++. Abel also… Read More
Backtrace is pleased to announce our free minidump beta. Software teams can now take control of their crashes by using Backtrace to capture, aggregate, and analyze their minidumps across their entire deployment base. If you are interested in taking part in our free minidump beta, sign up here and we’ll get back to you shortly.… Read More
We are happy to announce the beta release of the Backtrace web-based inspector. Seamlessly integrated into the Backtrace Console, you will now be able to view detailed application state captured at the time of error. This information includes all threads (and goroutines for the Gophers), variables, memory allocation details, annotations, pretty-printed data structures, and more. Read More