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 multi-stage project aims to provide FreeBSD with a modern debugger and bring LLDB closer to being a fully featured GDB replacement.
Part I of the LLDB Improvements Project described the replacement of the obsolete LLDB plugin model used on FreeBSD x86_64 with a modern approach, which executes the target process under a separate lldb-server process. The legacy monolithic target support is still in use on non-x86 targets. Part II of this project involves switching some non-x86 CPU architectures to the new remote process plugin framework and removing the old native-debugging process plugin altogether. Once porting is complete, focus will switch to reiterating all LLDB tests on ARM64 and addressing any bugs as time permits and marking non-trivial issues as known failures.
Other part II milestones are:
- support for follow-fork and follow-vfork operations for debugging child processes on par with GNU GDB.
- Add follow-spawn for enhanced process tracing support (if time permits).
- Savecore functionality allowing users to create on-demand core dump files.
- Document the improved LLDB support in the FreeBSD manual.