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