LLDB debugger: how it works and how to implement it for your architecture

By Alexandre Yukio Yamashita and Leandro Lupori, Instituto de Pesquisas Eldorado

LLDB is a high-performance debugger that supports debugging C, C++ and Objective-C. In addition to Linux, it runs on Mac OS X and FreeBSD, and it is the default debugger for Xcode and Android Studio. This talk explains how debuggers work under the hood with focus on LLDB. We will present its functionalities and describe how to add support for a new architecture. We will describe how to define architectures, implement breakpoints and watchpoints, read and write register values, backtrace stack frames and debug core dumps. A brief description of the implementation of each functionality will be given with examples using the PowerPC architecture.


Alexandre is a software developer at Instituto de Pesquisas Eldorado, where he works on open source softwares (LLDB, FreeBSD) providing solutions for the PowerPC platforms. He contributes to FOSS porting and enhancing performance for PowerPC. His technical experience includes cloud systems, image analysis and machine learning. He received a B.S. degree in Computer Science from the São Paulo State University in 2013 and a M.S. degree in Computer Science from the State University of Campinas in 2017.