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
next prev 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).