Overview
Explore debugging techniques for C++ code without execution in this ACCU 2018 conference talk. Delve into strategies for handling macros, templates, compile-time evaluation, code generation, reflection, and metaclasses. Learn how to navigate complex C++ features that often obscure the final code passed to the compiler. Discover methods for dealing with preprocessor challenges and alternatives to traditional read-fix-run debugging cycles. Examine approaches for macro and typedef debugging, understanding hidden types with auto/decltype, and managing different code branches based on preprocessor conditions. Gain insights into tools and workflows that can enhance C++ development, including features implemented in CLion and ReSharper C++. Understand how these techniques can improve the creation of modern C++ code, especially in situations where local execution is not possible.
Syllabus
Introduction
Agenda
Tricky C
Simple examples
QA story
The problem with language
Example
Overloads
Overload Resolution
ConstExper
Why regular tools dont help
Tools for abstractions
Herb Slides
Macros
Final Replacement
Macro Navigation
Macro Declaration
Type Information
Substitute Type Information
Debugging
Tools
Overloaded Operators
Overloaded Functions
Visual Studio
Prototype
Blowup Factor
Precompiled headers
Include profiler
Optimizers
References
Questions
How it grows
Is it scary
Taught by
ACCU Conference