Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-doc
Path: blob/main/website/content/en/status/report-2021-10-2021-12/lldb.adoc
18096 views
=== LLDB Debugger Improvements

Links: +
link:https://www.moritz.systems/blog/freebsd-kgdb-support-in-lldb/[Moritz Systems Project Description] URL: link:https://www.moritz.systems/blog/freebsd-kgdb-support-in-lldb/[https://www.moritz.systems/blog/freebsd-kgdb-support-in-lldb/] +
link:https://www.moritz.systems/blog/lldb-serial-port-communication-support/[Progress Report 3] URL: link:https://www.moritz.systems/blog/lldb-serial-port-communication-support/[https://www.moritz.systems/blog/lldb-serial-port-communication-support/] +
link:https://www.moritz.systems/blog/lldb-freebsd-kernel-core-dump-support/[Progress Report 4] URL: link:https://www.moritz.systems/blog/lldb-freebsd-kernel-core-dump-support/[https://www.moritz.systems/blog/lldb-freebsd-kernel-core-dump-support/] +
link:https://github.com/moritz-systems/llvm-project[LLVM Git Repository] URL: link:https://github.com/moritz-systems/llvm-project[https://github.com/moritz-systems/llvm-project] +
link:https://github.com/moritz-systems/libfbsdvmcore[libfbsdvmcore Git Repository] URL: link:https://github.com/moritz-systems/libfbsdvmcore[https://github.com/moritz-systems/libfbsdvmcore]

Contact: Kamil Rytarowski <[email protected]> +
Contact: Michał Górny <[email protected]>

According to the upstream description, "LLDB is a next generation,
high-performance debugger. It is built as a set of reusable components which
highly leverage existing libraries in the larger LLVM Project, such as the
Clang expression parser and LLVM disassembler."

FreeBSD includes LLDB in the base system.  At present, it has some limitations
compared to the GNU GDB debugger, and does not yet provide a complete
replacement.  This project spans from July 2021 to January 2022 and aims to
make LLDB suitable for debugging FreeBSD kernels.

The earlier part of the project was focused on improving compatibility between
LLDB and other servers implementing the GDB Remote Protocol.  This was followed
by implementing a fully-featured serial port support and then support
for FreeBSD kernel core dumps (vmcores).

The LLDB client gained much improved support for connecting to the remote
server over a serial port, and the LLDB server gained support for accepting
communication over a serial port.  This opened the possibility of using LLDB
to debug embedded devices that use the RS232 interface.  It can also aid
debugging kernels on regular PCs as it does not rely on the network stack.

Support for FreeBSD vmcores has also been added to LLDB.  This makes it
possible to inspect the crashed kernel state without having to resort to KGDB
or manually convert the vmcore into the standard ELF format supported by LLDB.

The introduced changes are expected to be shipped with LLDB 14.0.

Sponsor: The FreeBSD Foundation