Just two weeks ago, we were at CppCon! Time flies, and we wanted to take some time to give a trip report while the show is still fresh in our minds. CppCon is the annual week long gathering for the entire C++ community, and it’s filled with inspiring talks, industry leaders, and fantastic events. This was our second year at the show, and the growth in just one year was unbelievable. There were more attendees, speakers, and exhibitors than ever before. CppCon is growing fast. This was also our biggest conference presence to date. We sent a team of seven to attend the conference, hosted an open session, and made sure to have as engaging a booth as possible. 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 sponsored and attended CppCon 2016 this year in the beautiful city of Bellevue, WA. It was great to connect with the C++ community and attend some excellent talks. With over 300 sessions available, it was impossible to catch them all. Fortunately for those that missed any of the talks, CppCon posted all the presentation… Read More
This is the first of a two-part series describing the implementation of a generic debugging tool. Part one covers the core internals of a debugger; part two focuses on extending a debugger to support a specific programming language — Go. Implementing a debugging tool may seem like a monumental task. gdb, one of the most… Read More