Skip to content

San Francisco: C++ Exceptions and Stack Unwinding

Photo of Arthur O'Dwyer
Hosted By
Arthur O. and Michael P.
San Francisco: C++ Exceptions and Stack Unwinding

Details

Exceptions are often described as "slow," and the standard advice is to use them only in exceptional circumstances. In this talk, we'll find out how slow exceptions really are by exploring the Itanium exception handling model.

We'll dive into several implementations (libunwind, gcc, llvm-libunwind), and learn about everything that happens between throw() and catch(). We will discover the answers to questions such as why throwing an exception takes a global lock (and how to avoid it), how caching can speed up the performance of exceptions, and how to get better stack traces.

Dave Watson is an infrastructure engineer at Facebook. He has been focused on improving the application server stack, including improvements in RPC, load balancing, memory management, and asynchronous programming. He has contributed to many of Facebook's core services and OSS projects, including HHVM (https://github.com/facebook/hhvm), folly (https://github.com/facebook/folly), proxygen (https://github.com/facebook/proxygen), wangle (https://github.com/facebook/wangle), and mcrouter (https://github.com/facebook/mcrouter). Previously he worked at F5 Networks on load balancers and network monitoring tools.

Photo of Cpp Bay Area: C++ Programming In and Around Silicon Valley group
Cpp Bay Area: C++ Programming In and Around Silicon Valley
See more events