July 17-19 | Tokyo, Japan
View More Details  & Register Here
Back To Schedule
Thursday, July 18 • 12:00 - 12:40
Compact C Type Format Support in the GNU Toolchain - Elena Zannoni, Oracle

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
Compact C Type Format (CTF) is a reduced form of debugging information whose main purpose is to describe the type of C entities such as structures, unions, typedefs and function arguments. It originated in the Solaris kernel and it has been ported to Linux as part of the DTrace for Linux project. It's been used (via libdtrace-ctf) to reduce the size of the debugging information for the Linux kernel and for use in DTrace.

There are many advantages to using CTF, due to its compactness, for many kinds of programs that can't rely on DWARF. DWARF's design strives for generality and expressive power, at the cost of being a rather heavy format. For example, evaluating DWARF expressions requires an interpreter for a stack-based machine. This, which is not problematic for typical "off-line" debugging programs such as symbolic debuggers (GDB), may be inconvenient for "on-line" debugging programs such as
unwinders and stack tracers, due to efficiency and security concerns. CTF is a promising format that helps maintain some level of debuggability, even when the size of the executable is an issue and the DWARF info is being stripped out.

For such reasons, we integrated CTF with the GNU toolchain on Linux. This talk will explain how CTF is structured, how we added CTF generation capabilities to gcc, how GDB consumes the CTF information and how binutils and elfutils have been extended to process this new format.

We believe CTF provides the right foundations for expressing the information needed by "on-line" debugging programs, in a most convenient way.

avatar for Elena Zannoni

Elena Zannoni

Director of the Linux Tools and Languages Team, Oracle Corporation
Elena Zannoni is the manager for the Linux Toolchain and Tracing team at Oracle. The team covers the GNU toolchain and DTrace for Linux, among other things. Elena was one of the original GDB global maintainers and has spoken worldwide on topics related to tracing at many conferences... Read More →

Thursday July 18, 2019 12:00 - 12:40 JST
Hall A (2) (Floor 5F)
  Linux Systems