[all-commits] [llvm/llvm-project] e5aa4c: [lldb] Support Compact C Type Format (CTF) section

Jonas Devlieghere via All-commits all-commits at lists.llvm.org
Thu Jul 13 11:31:06 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e5aa4cff43239930f87ada9183720d4182daa8fa
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2023-07-13 (Thu, 13 Jul 2023)

  Changed paths:
    M lldb/include/lldb/lldb-enumerations.h
    M lldb/source/Core/Section.cpp
    M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
    M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
    M lldb/source/Symbol/ObjectFile.cpp

  Log Message:
  [lldb] Support Compact C Type Format (CTF) section

Teach LLDB about the ctf (Compact C Type Format) section.

Differential revision: https://reviews.llvm.org/D154668

  Commit: ee44310a48b7d14336de75e170110e2fea90842b
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2023-07-13 (Thu, 13 Jul 2023)

  Changed paths:
    M lldb/source/Plugins/SymbolFile/CMakeLists.txt
    A lldb/source/Plugins/SymbolFile/CTF/CMakeLists.txt
    A lldb/source/Plugins/SymbolFile/CTF/SymbolFileCTF.cpp
    A lldb/source/Plugins/SymbolFile/CTF/SymbolFileCTF.h
    M lldb/test/API/CMakeLists.txt
    A lldb/test/API/macosx/ctf/Makefile
    A lldb/test/API/macosx/ctf/TestCTF.py
    A lldb/test/API/macosx/ctf/test.c

  Log Message:
  [lldb] Support Compact C Type Format (CTF)

Add support for the Compact C Type Format (CTF) in LLDB. The format
describes the layout and sizes of C types. It is most commonly consumed
by dtrace.

We generate CTF for the XNU kernel and want to be able to use this in
LLDB to debug kernels for which we don't have dSYMs (anymore). CTF is a
much more limited debug format than DWARF which allows is to be an order
of magnitude smaller: a 1GB dSYM can be converted to a handful of
megabytes of CTF. For XNU, the goal is not to replace DWARF, but rather
to have CTF serve as a "better than nothing" debug info format when
DWARF is not available.

It's worth noting that the LLVM toolchain does not support emitting CTF.
XNU uses ctfconvert to generate CTF from DWARF which is used for

Differential revision: https://reviews.llvm.org/D154862

Compare: https://github.com/llvm/llvm-project/compare/b8e29dbe5487...ee44310a48b7

More information about the All-commits mailing list