Overview
Explore advanced techniques for debugging and profiling C++ template metaprograms in this comprehensive conference talk. Delve into the world of C++ Template Metaprogramming, understanding its applications in expression templates, static interface checking, code optimization, domain-specific language embedding, and active libraries. Learn about the challenges faced in designing, maintaining, and analyzing template metaprograms, including increased compilation times. Discover a prototype toolset developed to support developers working with large C++ codebases that heavily utilize templates. Gain insights into the toolset's functionality, built on the llvm/clang compiler infrastructure, which captures critical template-related compiler actions and generates XML trace files. Examine the Qt-based frontend that visualizes results, offering features like source code view, breakpoints, step-by-step replay, and instantiation graph animation. Compare run-time and compile-time approaches, explore the advantages and issues of instrumentation, and understand the importance of compiler support in template metaprogramming.
Syllabus
Intro
Agenda
C++ Template Metaprograms
When to use metaprograms?
Run-time vs Compile time
Tool support
Why we need tools?
C++ Template Metaprogramming
Run-time vs. Compile time
Templight 1.0
Advantages of instrumentation
Issues with instrumentation
Compiler support
Templight 2.0
Installation
Running
Templar
Breakpoint
Filter
Profiler
Memory
Distorsion
Vision
Summary
Taught by
CppNow