CppCon 2018: James McNellis “Unwinding the Stack: Exploring How C++ Exceptions Work on Windows”

— Presentation Slides, PDFs, Source Code and other presenter materials are available at: — If you’re writing modern C code, then it’s likely that you are using exceptions—whether you’re throwing them yourself or just using library code that might throw (e.g., std::vector). Have you ever stopped to think about how exceptions work under the hood? What actually happens at runtime when you throw an exception? How is the right catch statement found? In this session, we’ll explore how C exceptions actually work in the Visual C implementation on Windows. This session will discuss: * A very, very brief overview of how exceptions work in the C language * The code and data structures the Visual C compiler generates to facilitate proper stack unwinding * Exactly what happens when an exception is thrown, how the right catch statement is found, and how the stack is unwound * Structured Exception Handling (SEH), the Windows OS feature atop which C ex
Back to Top