FreeBSD’s base system includes LLDB, the LLVM family debugger. Compared to the GNU GDB debugger, FreeBSD’s LLDB currently has some limitations and is not yet a complete replacement. This muliti-stage project aims to provide FreeBSD with a modern debugger and bring LLDB closer to being a fully featured GDB replacement.
The legacy monolithic target support used in FreeBSD’s LLDB executes the front and backends of the debugger in the same process space and relies on an obsolete plugin model with growing technical debt. The modern LLDB plugin approach used on other supported targets executes the target process under a separate lldb-server process. This improves reliability and simplifies the process / thread model in LLDB itself. In addition, remote and local debugging are performed using the same approach. Part I of this project involves development of a basic remote process plugin for FreeBSD x86_64 and upstreaming the work to LLVM. After the migration to the new process model is complete, a review of LLDB’s test suite will be conducted and any necessary fixes will be made, as time permits. This work will be completed in 2020