Mind the Gap (Between Your Code and Your Toolchain)
summary
Linkers hit a ~2 GB default limit for huge debug info and the practical fix is to emit split debug symbols (.dwo) which shrinks the binary to about 10–15% overhead while keeping full debuggability. Reproducible caching comes from mirroring sources to a deterministic path, an environment description (Docker/CMake toolchain) and a two-layer cache: L1/L2 content-addressable cache that lets builds share artifacts across machines. Profile builds with clang per-function timing or ninja tracing, and catch size regressions with Bloaty size profiler (delta analysis).
AI-written summary · about
chapters (6)
- 0:00Toolchain gaps
- 1:11Debug symbols and linker limits
- 4:38Build caching challenges
- 8:57L1 and L2 caches
- 11:08Profiling build process
- 14:42Summary
related talks
24m(Ab)using Compiler Tools
57mModern Linux C++ debugging tools - under the covers
52mApplication-Level Debugging and Profiling: Gaps in the Tool Ecosystem
01h 04mCommon-sense acceleration of your MLOC build
01h 05mHow to Write a Heap Memory Profiler
01h 29mModern Linux C++ Debugging Tools - Under the Covers
25mLLDB - a new C++ debugger
01h 00mLinkers, Loaders and Shared Libraries in Windows, Linux, and C++
