public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Pierre-Marie de Rodat <derodat@adacore.com>
To: GCC Patches <gcc-patches@gcc.gnu.org>
Subject: [PATCHES] Enhance standard DWARF for Ada
Date: Thu, 16 Jul 2015 08:36:00 -0000	[thread overview]
Message-ID: <55A76C7B.7080303@adacore.com> (raw)

Hello,

This patch series aims at enhancing GCC to emit standard DWARF in place 
of the current GNAT encodings (non-standard DWARF) for a set of "basic" 
types: dynamic arrays, variable-length records, variant parts, etc.

As most debuggers (including GDB) do not support these DWARF 
descriptions yet, it is necessary to still make it possible to generate 
the old GNAT encodings, though. Hence the first change, which introduces 
an option (-fgnat-encodings=all|gdb|minimal) that selects how much GNAT 
encodings must be emitted:

   - -fgnat-encodings=all emits as much encodings as before (i.e. before 
these series of patches);

   - -fgnat-encodings=gdb (the default) emits all the standard DWARF 
that the current GDB can handle (so this will vary with time) and emit 
GNAT encodings for the rest;

   - -fgnat-encodings=minimal emits as much standard DWARF as possible 
in the compiler and still emit GNAT encodings for the rest (this will 
vary with time as well).

At the moment, there is no difference between -fgnat-encodings=all|gdb 
but I hope this will change soon thanks to ongoing work on GDB (for 
instance: 
<https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=df25ebbd091aebc132f97ffd6ce9cf7964a57981>).

The remaining commits enhance the DWARF back-end (mostly dwarf2out.c), 
the Ada front-end (mostly gcc/ada/gcc-interface/*) and sometimes adapts 
the Fortran front-end as well in order to emit this new DWARF. In order 
to do so, it sometimes introduces new language hooks to pass information 
that aren't available in trees.

The result has been bootstrapped and regtested successfully on 
x86_64-linux. Besides, this triggers no regression by default 
(-fgnat-encodings=gdb). Note however that being unable to test 
-fgnat-encodings=minimal under with debugger right now, I also have 
written a small Python testsuite using pyelftools[1] in order to check 
for a few examples that the expected DIEs/attributes are properly 
generated (that was useful during development but is very ad-hoc, so I 
haven't published it yet).

Ok for trunk? Thank you in advance for the review!

[1] https://github.com/eliben/pyelftools/

-- 
Pierre-Marie de Rodat

             reply	other threads:[~2015-07-16  8:34 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-16  8:36 Pierre-Marie de Rodat [this message]
2015-07-16  8:42 ` [PATCH 1/8] Add a flag to control the balance between GNAT encodings, and std. DWARF Pierre-Marie de Rodat
2015-07-16  9:18   ` Andreas Schwab
2015-07-16 10:16     ` Richard Biener
2015-07-16 10:19       ` Pierre-Marie de Rodat
2015-07-16  8:43 ` [PATCH 2/8] DWARF: handle variable-length records and variant parts Pierre-Marie de Rodat
2015-07-16  9:00   ` Pierre-Marie de Rodat
2015-07-16  8:44 ` [PATCH 3/8] DWARF: add a language hook to override types in debugging information Pierre-Marie de Rodat
2015-07-16  8:45 ` [PATCH 4/8] DWARF: add a language hook for fixed-point types Pierre-Marie de Rodat
2015-08-18  8:32   ` Pierre-Marie de Rodat
2015-07-16  8:46 ` [PATCH 5/8] DWARF: describe Ada dynamic arrays as proper arrays Pierre-Marie de Rodat
2015-07-16  8:49 ` [PATCH 6/8] create a macro for max dimensions for array descr. lang. hook Pierre-Marie de Rodat
2015-07-16  8:51 ` [PATCH 7/8] DWARF: add a language hook for scalar biased types Pierre-Marie de Rodat
2015-08-18  8:16   ` Pierre-Marie de Rodat
2015-07-16  8:53 ` [PATCH 8/8] DWARF: describe properly Ada packed arrays Pierre-Marie de Rodat
2015-07-23 10:59 ` [PATCHES, PING] Enhance standard DWARF for Ada Pierre-Marie de Rodat
2015-07-31 11:04   ` [PATCHES, PING*2] " Pierre-Marie de Rodat
2015-07-31 11:31     ` Pierre-Marie de Rodat
2015-08-08  9:01       ` [PATCHES, PING*3] " Pierre-Marie de Rodat
2015-08-31  9:15         ` [PATCHES, PING*4] " Pierre-Marie de Rodat
2015-10-20 20:20           ` [PATCHES, PING*5] " Pierre-Marie de Rodat
2015-11-18 20:35             ` Jason Merrill
2015-11-23 14:01               ` Pierre-Marie de Rodat
2015-11-23 21:11                 ` Jason Merrill
2015-11-24  9:19                   ` Pierre-Marie de Rodat
2015-11-25 18:36                     ` Jason Merrill
2015-11-26 12:37                       ` Pierre-Marie de Rodat
2015-12-03 10:35                         ` [PATCHES, PING] " Pierre-Marie de Rodat
2015-12-10  7:18                           ` [PATCHES, PING*2] " Pierre-Marie de Rodat
2015-12-11 20:25                         ` [PATCHES, PING*5] " Jason Merrill
2015-12-16  8:53                           ` Pierre-Marie de Rodat
2015-12-16 21:30                             ` Jason Merrill
2015-12-17 14:10                               ` Pierre-Marie de Rodat
2015-12-18 17:56                                 ` Jason Merrill
2015-12-18 17:58                                   ` Jakub Jelinek
2015-12-18 18:22                                     ` Eric Botcazou
2016-01-02 21:37                                       ` Andreas Schwab
2016-01-02 23:45                                         ` Eric Botcazou
2016-01-05  9:02                                           ` Pierre-Marie de Rodat
2015-12-18 20:23                                   ` Pierre-Marie de Rodat
2015-12-21 14:16                                     ` Pierre-Marie de Rodat
2015-12-21 15:40                                       ` Jason Merrill
2015-12-21 15:44                                         ` Pierre-Marie de Rodat
2016-02-25  9:48                             ` Jakub Jelinek
2016-02-25 10:35                               ` Pierre-Marie de Rodat
2016-02-25 10:45                                 ` Jakub Jelinek
2016-02-25 12:23                                   ` Eric Botcazou
2016-02-25 15:51                                 ` Jakub Jelinek
2016-02-25 15:59                                   ` Pierre-Marie de Rodat
2016-02-25 15:54                               ` Pierre-Marie de Rodat
2016-02-25 16:46                                 ` [PATCH] Fix DW_OP_GNU_implicit_pointer referring to DW_TAG_dwarf_procedure (PR debug/69947) Jakub Jelinek
2016-02-25 20:55                                   ` Jakub Jelinek
2016-02-26  8:59                                   ` Pierre-Marie de Rodat

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=55A76C7B.7080303@adacore.com \
    --to=derodat@adacore.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).