public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: "Jose E. Marchesi" <jose.marchesi@oracle.com>
To: "Jose E. Marchesi via Gcc-patches" <gcc-patches@gcc.gnu.org>
Subject: Re: [[PATCH V9] 0/7] Support for the CTF and BTF debug formats
Date: Mon, 14 Jun 2021 17:25:49 +0200	[thread overview]
Message-ID: <874ke0cvsy.fsf@oracle.com> (raw)
In-Reply-To: <20210531165802.5686-1-jose.marchesi@oracle.com> (Jose E. Marchesi via Gcc-patches's message of "Mon, 31 May 2021 18:57:55 +0200")


ping

> [Changes from V8:
> - Rebased to today's master.
> - Adapted to use the write-symbols new infrastructure recently
>   applied upstream.
> - Little change in libiberty to copy .BTF sections over when
>   LTOing.]
>
> Hi people!
>
> Last year we submitted a first patch series introducing support for
> the CTF debugging format in GCC [1].  We got a lot of feedback that
> prompted us to change the approach used to generate the debug info,
> and this patch series is the result of that.
>
> This series also add support for the BTF debug format, which is needed
> by the BPF backend (more on this below.)
>
> This implementation works, but there are several points that need
> discussion and agreement with the upstream community, as they impact
> the way debugging options work.  We are also proposing a way to add
> additional debugging formats in the future.  See below for more
> details.
>
> Finally, a patch makes the BPF GCC backend to use the DWARF debug
> hooks in order to make -gbtf available to it.
>
> [1] https://gcc.gnu.org/legacy-ml/gcc-patches/2019-05/msg01297.html
>
> About CTF
> =========
>
> CTF is a debugging format designed in order to express C types in a
> very compact way.  The key is compactness and simplicity.  For more
> information see:
>
> - CTF specification
>   http://www.esperi.org.uk/~oranix/ctf/ctf-spec.pdf
>
> - Compact C-Type support in the GNU toolchain (talk + slides)
>   https://linuxplumbersconf.org/event/4/contributions/396/
>
> - On type de-duplication in CTF (talk + slides)
>   https://linuxplumbersconf.org/event/7/contributions/725/
>
> About BTF
> =========
>
> BTF is a debugging format, similar to CTF, that is used in the Linux
> kernel as the debugging format for BPF programs.  From the kernel
> documentation:
>
> "BTF (BPF Type Format) is the metadata format which encodes the debug
>  info related to BPF program/map. The name BTF was used initially to
>  describe data types. The BTF was later extended to include function
>  info for defined subroutines, and line info for source/line
>  information."
>
> Supporting BTF in GCC is important because compiled BPF programs
> (which GCC supports as a target) require the type information in order
> to be loaded and run in diverse kernel versions.  This mechanism is
> known as CO-RE (compile-once, run-everywhere) and is described in the
> "Update of the BPF support in the GNU Toolchain" talk mentioned below.
>
> The BTF is documented in the Linux kernel documentation tree:
> - linux/Documentation/bpf/btf.rst
>
> CTF in the GNU Toolchain
> ========================
>
> During the last year we have been working in adding support for CTF to
> several components of the GNU toolchain:
>
> - binutils support is already upstream.  It supports linking objects
>   with CTF information with full type de-duplication.
>
> - GDB support is to be sent upstream very shortly.  It makes the
>   debugger capable to use the CTF information whenever available.
>   This is useful in cases where DWARF has been stripped out but CTF is
>   kept.
>
> - GCC support is being discussed and submitted in this series.
>
> Overview of the Implementation
> ==============================
>
>   dwarf2out.c
>
>     The enabled debug formats are hooked in dwarf2out_early_finish.
>
>   dwarf2int.h
>
>     Internal interface that exports a few functions and data types
>     defined in dwarf2out.c.
>
>   dwarf2ctf.c
>
>     Code that tranform the internal GCC DWARF DIEs into CTF container
>     structures.  This file uses the dwarf2int.h interface.
>
>   ctfc.c
>   ctfc.h
>
>     These two files implement the "CTF container", which is shared
>     among CTF and BTF, due to the many similarities between both
>     formats.
>
>   ctfout.c
>
>     Code that emits assembler with the .ctf section data, from the CTF
>     container.
>
>   btfout.c
>
>     Code that emits assembler with the .BTF section data, from the CTF
>     container.
>
> From debug hooks to debug formats
> =================================
>
> Our first attempt in adding CTF to GCC used the obvious approach of
> adding a new set of debug hooks as defined in gcc/debug.h.
>
> During our first interaction with the upstream community we were told
> to _not_ use debug hooks, because these are to be obsoleted at some
> point.  We were suggested to instead hook our handlers (which
> processed type TREE nodes producing CTF types from them) somewhere
> else.  So we did.
>
> However at the time we were also facing the need to support BTF, which
> is another type-related debug format needed by the BPF GCC backend.
> Hooking here and there doesn't sound like such a good idea when it
> comes to support several debug formats.
>
> Therefore we thought about how to make GCC support diverse debugging
> formats in a better way.  This led to a proposal we tried to discuss
> at the GNU Tools Track in LPC2020:
>
> - Update of the BPF support in the GNU Toolchain
>   https://linuxplumbersconf.org/event/7/contributions/724/
>
> Basically, the current situation in terms of diversity of debugging
> formats in GCC can be summarized in the following like:
>
>      tree     --+                  +--> dwarf2out
>      rtl      --+                  +--> dbxout
>                 +--> debug_hooks --+--> vmsdbgout
>      backends --+                  +--> xcoffout
>      lto      --+                  +--> godump
>
> i.e. each debug format materializes in a set of debug hooks, as in
> gcc/debug.h.  The installed hooks are then invoked from many different
> areas of the compiler including front-end, middle-end, back-end and
> also lto.  Most of the hooks get TREE objects, from which they are
> supposed to extract/infer whatever information they need to express.
>
> This approach has several problems, some of which were raised by you
> people when we initially submitted the CTF support:
>
> - The handlers depend on the TREE nodes, so if new TREE nodes are
>   added to cover new languages, or functionality in existing
>   languages, all the debug hooks may need to be updated to reflect it.
>
> - This also happens when the contents of existing TREE node types
>   change or get expanded.
>
> - The semantics encoded in TREE nodes usually are not in the best form
>   to be used by debug formats.  This implies that the several sets of
>   debug hooks need to do very similar transformations, which again
>   will have to be adjusted/corrected if the TREE nodes change.
>
> - And more...
>
> In contrast, this is how LLVM supports several debug formats:
>
>                                      +--> DWARF
>      IR --> class DebugHandlerBase --+--> CodeView
>                                      +--> BTF    
>
> i.e. LLVM gets debugging information as part of the IR, and then has
> debug info backends in the form of instances of DebugHandlerBase,
> which process that subset of the IR to produce whatever debug output.
>
> To overcome the problems above, we thought about introducing a new set
> of debug hooks, resulting in something like this:
>
>                    +--> godump
>                    +--> xcoffout
>       debug_hooks -+--> vmsdbgout
>                    +--> dbxout                        +--> DWARF
>                    +--> dwarf2out --> n_debug_hooks --+--> BTF
>                                         (walk)        +--> CTF
>                                                       ... more ...
>
> See how these "new debug hooks" are intended to be called by the DWARF
> old debug hooks.  In this way:
>
> - The internal DWARF representation becomes the canonical (and only)
>   IR for debugging information in the compiler.  This is similar to
>   what LLVM uses to implement support for DWARF, BTF and the Microsoft
>   debug format.
>
> - Debug formats (like CTF, BTF, stabs, etc) are implemented to provide
>   a very simple API that traverses the DWARF DIE trees available in
>   dwarf2out.
>
> - The semantics expressed in the DWARF DIEs, which have been already
>   extracted from the TREE nodes, are free of many internal details and
>   more suitable to be easily translated into whatever abstractions the
>   debug formats require.
>   
> To avoid misunderstandings, we got to refer to these "new debug hooks"
> simply as "debug formats".
>
> In this patch series we are using this later approach in order to
> support both CTF and BTF, and we can say we are happy about using the
> internal DWARF DIEs as a source instead of TREE nodes: it led to a
> more natural implementation, much easier to understand.  This sort of
> confirms in practice that the approach is sound.
>
> The debug format API
> ====================
>
> As you can see in the patch series, we hooked CTF in dwarf2out_early_finish
> like this:
>
>      /* Emit CTF debug info.  */
>      if (ctf_debug_info_level > CTFINFO_LEVEL_NONE && lang_GNU_C ())
>       {
>         ctf_debug_init ();
>         debug_format_do_cu (comp_unit_die ());
>         for (limbo_die_node *node = limbo_die_list; node; node = node->next) 
>           debug_format_do_cu (node->die);
>        }
>
> And then the finalization/emission in dwarf2out_finish:
>
>   /* Emit CTF/BTF debug info.  */
>     if ((ctf_debug_info_level > CTFINFO_LEVEL_NONE
>         || btf_debug_info_level > BTFINFO_LEVEL_NONE) && lang_GNU_C ())
>       ctf_debug_finalize (filename, btf_debug_info_level > BTFINFO_LEVEL_NONE);
>
> The reason for ctf_debug_finalize to be in dwarf2out_finish is that
> backends may (and will, in the case of the BPF backend) add additional
> debugging information.
>
> The call to debug_format_do_cu traverses the tree of DIEs passed to it
> calling ctf_do_die on them.
>
> This conforms the debug format API:
>
>    FOO_debug_init ()
>      Initialize the debug format FOO.
>
>    FOO_debug_finalize (FILENAME)
>      Possibly write out, cleanup and finalization for debug format FOO.
>
>    FOO_do_die (DIE)
>      Process the given DIE.
>   
> Note how the emission of DWARF is interrupted after that point, if no
> DWARF was requested by the user.
>
> dwarf2out - dwarf2ctf
> =====================
>
> The functions ctf_debug_init, ctf_do_die and ctf_debug_finalize, that
> implement the API described above, are all in gcc/dwarf2ctf.c.
>
> Obviously, these routines need access to the dwarf DIE data
> structures, and several functions which are defined in dwarf2out.[ch],
> many (most?) of which are private to that file: dw_die_ref, get_AT,
> etc.
>
> Therefore, in this implementation we exported these functions and data
> types in a new interface dwarf2int.h.
>
> Command line options for debug formats
> ======================================
>
> This implementation adds the following command-line options to select the
> emission of CTF and BTF:
>
>      -gctf[123]
>      -gbtf
>
> These options mimic the -g[123...] options for DWARF.
>
> This involved adding new entries for debug_info_type:
>
>      CTF_DEBUG            - Write CTF debug info.
>      BTF_DEBUG            - Write BTF debug info.
>      CTF_AND_DWARF2_DEBUG - Write both CTF and DWARF info.
>    
> Doing this, we just followed the trend initiated by vmsdbgout.c, which
> added VMS_DEBUG and VMS_AND_DWARF2_DEBUG.
>
> Indu Bhagat (7):
>   dwarf: add a dwarf2int.h internal interface
>   dejagnu: modularize gcc-dg-debug-runtest a bit
>   CTF/BTF debug formats
>   CTF/BTF testsuites
>   CTF/BTF documentation
>   Enable BTF generation in the BPF backend
>   libiberty: copy over .BTF section when using LTO
>
>  gcc/Makefile.in                               |    9 +
>  gcc/btfout.c                                  | 1128 +++++++++++++++++
>  gcc/common.opt                                |   15 +
>  gcc/config/bpf/bpf.c                          |    4 -
>  gcc/config/bpf/bpf.h                          |   12 +-
>  gcc/ctfc.c                                    |  969 ++++++++++++++
>  gcc/ctfc.h                                    |  438 +++++++
>  gcc/ctfout.c                                  |  830 ++++++++++++
>  gcc/doc/invoke.texi                           |   20 +
>  gcc/dwarf2cfi.c                               |    2 +-
>  gcc/dwarf2ctf.c                               |  989 +++++++++++++++
>  gcc/dwarf2ctf.h                               |   53 +
>  gcc/dwarf2int.h                               |   68 +
>  gcc/dwarf2out.c                               |  116 +-
>  gcc/final.c                                   |    2 +-
>  gcc/flag-types.h                              |   21 +-
>  gcc/flags.h                                   |    9 +
>  gcc/gengtype.c                                |    7 +-
>  gcc/opts.c                                    |  134 +-
>  gcc/testsuite/gcc.dg/debug/btf/btf-1.c        |    6 +
>  gcc/testsuite/gcc.dg/debug/btf/btf-2.c        |   10 +
>  .../gcc.dg/debug/btf/btf-anonymous-struct-1.c |   23 +
>  .../gcc.dg/debug/btf/btf-anonymous-union-1.c  |   23 +
>  gcc/testsuite/gcc.dg/debug/btf/btf-array-1.c  |   31 +
>  .../gcc.dg/debug/btf/btf-bitfields-1.c        |   34 +
>  .../gcc.dg/debug/btf/btf-bitfields-2.c        |   26 +
>  .../gcc.dg/debug/btf/btf-bitfields-3.c        |   43 +
>  .../gcc.dg/debug/btf/btf-bitfields-4.c        |   23 +
>  .../gcc.dg/debug/btf/btf-cvr-quals-1.c        |   52 +
>  .../gcc.dg/debug/btf/btf-datasec-1.c          |   45 +
>  gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c   |   30 +
>  .../gcc.dg/debug/btf/btf-forward-1.c          |   24 +
>  .../gcc.dg/debug/btf/btf-function-1.c         |   18 +
>  .../gcc.dg/debug/btf/btf-function-2.c         |   18 +
>  .../gcc.dg/debug/btf/btf-function-3.c         |   22 +
>  gcc/testsuite/gcc.dg/debug/btf/btf-int-1.c    |   44 +
>  .../gcc.dg/debug/btf/btf-pointers-1.c         |   25 +
>  .../gcc.dg/debug/btf/btf-pointers-2.c         |   13 +
>  gcc/testsuite/gcc.dg/debug/btf/btf-struct-1.c |   22 +
>  gcc/testsuite/gcc.dg/debug/btf/btf-struct-2.c |   19 +
>  .../gcc.dg/debug/btf/btf-typedef-1.c          |   82 ++
>  gcc/testsuite/gcc.dg/debug/btf/btf-union-1.c  |   16 +
>  .../gcc.dg/debug/btf/btf-variables-1.c        |   33 +
>  .../gcc.dg/debug/btf/btf-variables-2.c        |   27 +
>  .../gcc.dg/debug/btf/btf-variables-3.c        |   36 +
>  gcc/testsuite/gcc.dg/debug/btf/btf.exp        |   41 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-1.c        |    6 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-2.c        |   10 +
>  .../gcc.dg/debug/ctf/ctf-anonymous-struct-1.c |   23 +
>  .../gcc.dg/debug/ctf/ctf-anonymous-union-1.c  |   26 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-1.c  |   31 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-2.c  |   38 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-3.c  |   17 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-4.c  |   13 +
>  .../gcc.dg/debug/ctf/ctf-attr-mode-1.c        |   22 +
>  .../gcc.dg/debug/ctf/ctf-attr-used-1.c        |   22 +
>  .../gcc.dg/debug/ctf/ctf-bitfields-1.c        |   30 +
>  .../gcc.dg/debug/ctf/ctf-bitfields-2.c        |   39 +
>  .../gcc.dg/debug/ctf/ctf-bitfields-3.c        |   16 +
>  .../gcc.dg/debug/ctf/ctf-bitfields-4.c        |   19 +
>  .../gcc.dg/debug/ctf/ctf-complex-1.c          |   21 +
>  .../gcc.dg/debug/ctf/ctf-cvr-quals-1.c        |   65 +
>  .../gcc.dg/debug/ctf/ctf-cvr-quals-2.c        |   30 +
>  .../gcc.dg/debug/ctf/ctf-cvr-quals-3.c        |   25 +
>  .../gcc.dg/debug/ctf/ctf-cvr-quals-4.c        |   23 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-debug-1.c  |    7 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-debug-2.c  |    7 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-1.c   |   21 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-2.c   |   27 +
>  .../gcc.dg/debug/ctf/ctf-file-scope-1.c       |   25 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-float-1.c  |   16 +
>  .../gcc.dg/debug/ctf/ctf-forward-1.c          |   40 +
>  .../gcc.dg/debug/ctf/ctf-forward-2.c          |   16 +
>  .../gcc.dg/debug/ctf/ctf-func-index-1.c       |   25 +
>  .../debug/ctf/ctf-function-pointers-1.c       |   24 +
>  .../debug/ctf/ctf-function-pointers-2.c       |   22 +
>  .../debug/ctf/ctf-function-pointers-3.c       |   21 +
>  .../debug/ctf/ctf-function-pointers-4.c       |   18 +
>  .../gcc.dg/debug/ctf/ctf-functions-1.c        |   34 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-int-1.c    |   17 +
>  .../gcc.dg/debug/ctf/ctf-objt-index-1.c       |   30 +
>  .../gcc.dg/debug/ctf/ctf-pointers-1.c         |   26 +
>  .../gcc.dg/debug/ctf/ctf-pointers-2.c         |   25 +
>  .../gcc.dg/debug/ctf/ctf-preamble-1.c         |   11 +
>  .../gcc.dg/debug/ctf/ctf-skip-types-1.c       |   38 +
>  .../gcc.dg/debug/ctf/ctf-skip-types-2.c       |   17 +
>  .../gcc.dg/debug/ctf/ctf-skip-types-3.c       |   20 +
>  .../gcc.dg/debug/ctf/ctf-skip-types-4.c       |   19 +
>  .../gcc.dg/debug/ctf/ctf-skip-types-5.c       |   19 +
>  .../gcc.dg/debug/ctf/ctf-skip-types-6.c       |   18 +
>  .../gcc.dg/debug/ctf/ctf-skip-types-7.c       |   18 +
>  .../gcc.dg/debug/ctf/ctf-skip-types-8.c       |   27 +
>  .../gcc.dg/debug/ctf/ctf-str-table-1.c        |   26 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-1.c |   25 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-2.c |   32 +
>  .../gcc.dg/debug/ctf/ctf-struct-array-1.c     |   65 +
>  .../gcc.dg/debug/ctf/ctf-struct-array-2.c     |   15 +
>  .../gcc.dg/debug/ctf/ctf-struct-pointer-1.c   |   21 +
>  .../gcc.dg/debug/ctf/ctf-struct-pointer-2.c   |   22 +
>  .../gcc.dg/debug/ctf/ctf-typedef-1.c          |   68 +
>  .../gcc.dg/debug/ctf/ctf-typedef-2.c          |   20 +
>  .../gcc.dg/debug/ctf/ctf-typedef-3.c          |   24 +
>  .../gcc.dg/debug/ctf/ctf-typedef-struct-1.c   |   14 +
>  .../gcc.dg/debug/ctf/ctf-typedef-struct-2.c   |   17 +
>  .../gcc.dg/debug/ctf/ctf-typedef-struct-3.c   |   32 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf-union-1.c  |   14 +
>  .../gcc.dg/debug/ctf/ctf-variables-1.c        |   25 +
>  .../gcc.dg/debug/ctf/ctf-variables-2.c        |   16 +
>  gcc/testsuite/gcc.dg/debug/ctf/ctf.exp        |   41 +
>  gcc/testsuite/lib/gcc-dg.exp                  |   83 +-
>  gcc/toplev.c                                  |   19 +-
>  include/btf.h                                 |  196 +++
>  include/ctf.h                                 |  520 ++++++++
>  libiberty/simple-object.c                     |    6 +
>  114 files changed, 7862 insertions(+), 115 deletions(-)
>  create mode 100644 gcc/btfout.c
>  create mode 100644 gcc/ctfc.c
>  create mode 100644 gcc/ctfc.h
>  create mode 100644 gcc/ctfout.c
>  create mode 100644 gcc/dwarf2ctf.c
>  create mode 100644 gcc/dwarf2ctf.h
>  create mode 100644 gcc/dwarf2int.h
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-struct-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-anonymous-union-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-array-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-3.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-bitfields-4.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-cvr-quals-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-datasec-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-forward-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-function-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-function-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-function-3.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-int-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-pointers-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-pointers-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-struct-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-struct-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-typedef-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-union-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-variables-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-variables-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-variables-3.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf.exp
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-anonymous-struct-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-anonymous-union-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-array-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-array-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-array-3.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-array-4.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-attr-mode-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-attr-used-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-3.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-4.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-complex-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-3.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-cvr-quals-4.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-debug-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-debug-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-enum-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-file-scope-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-float-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-forward-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-forward-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-func-index-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-3.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-4.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-functions-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-int-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-objt-index-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-pointers-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-pointers-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-preamble-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-3.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-4.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-5.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-6.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-7.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-skip-types-8.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-str-table-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-array-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-array-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-pointer-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-pointer-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-3.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-struct-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-struct-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-typedef-struct-3.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-union-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-1.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-2.c
>  create mode 100644 gcc/testsuite/gcc.dg/debug/ctf/ctf.exp
>  create mode 100644 include/btf.h
>  create mode 100644 include/ctf.h

  parent reply	other threads:[~2021-06-14 15:26 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-31 16:57 Jose E. Marchesi
2021-05-31 16:57 ` [[PATCH V9] 1/7] dwarf: add a dwarf2int.h internal interface Jose E. Marchesi
2021-06-22 20:05   ` Jason Merrill
2021-06-24 13:52     ` Jose E. Marchesi
2021-06-24 14:41       ` Jason Merrill
2021-06-24 15:13         ` Jose E. Marchesi
2021-06-24 15:30           ` Jason Merrill
2021-06-25  7:47             ` Richard Biener
2021-05-31 16:57 ` [[PATCH V9] 2/7] dejagnu: modularize gcc-dg-debug-runtest a bit Jose E. Marchesi
2021-06-21 13:47   ` Richard Biener
2021-05-31 16:57 ` [[PATCH V9] 3/7] CTF/BTF debug formats Jose E. Marchesi
2021-06-21 14:10   ` Richard Biener
2021-06-21 15:33     ` Jose E. Marchesi
2021-06-22 20:21   ` Jason Merrill
2021-05-31 16:57 ` [[PATCH V9] 4/7] CTF/BTF testsuites Jose E. Marchesi
2021-06-21 14:02   ` Richard Biener
2021-05-31 16:58 ` [[PATCH V9] 5/7] CTF/BTF documentation Jose E. Marchesi
2021-06-21 13:51   ` Richard Biener
2021-05-31 16:58 ` [[PATCH V9] 6/7] Enable BTF generation in the BPF backend Jose E. Marchesi
2021-06-21 13:53   ` Richard Biener
2021-05-31 16:58 ` [[PATCH V9] 7/7] libiberty: copy over .BTF section when using LTO Jose E. Marchesi
2021-06-21 13:53   ` Richard Biener
2021-06-14 15:25 ` Jose E. Marchesi [this message]
2021-06-21 14:01 ` [[PATCH V9] 0/7] Support for the CTF and BTF debug formats Richard Biener
2021-06-22 15:30   ` Indu Bhagat
2021-06-22 20:22   ` Jason Merrill

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874ke0cvsy.fsf@oracle.com \
    --to=jose.marchesi@oracle.com \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).