Debug information is a mapping between the original source code and low-level binary locations. It provides developers powerful insights to diagnose problems (via debuggers) in their code and acts as one of the most important foundations for modern software development. Furthermore, in recent years, we are seeing increasing demands of high quality debug information for highly optimized applications that are otherwise “un-debuggable”. For instance, debugging unoptimized games is generally not feasible since it’s likely to miss every single frame. In this talk, we are going to introduce how debug information works and how compilers generate proper debug info even with extensive levels of optimization enabled. At the end of this talk, you will gain insights into the structure of debug information and learn key compiler engineering knowledge on generating high quality debug info for critical, highly optimized software.
About Min-Yih Hsu
Min-Yih “Min” Hsu is a Computer Science PhD student in University of California, Irvine. He has over 7 years of compiler engineering experiences. He is also an active member in the LLVM project who actively contributes codes to upstream LLVM and participates in community events. Min is currently the code owner of M68k LLVM backend.
In his leisure time, Min is a coffee enjoyer and a researcher on perfect chocolate milk formula.