[0/11] Variant part support, plus more

Message ID 20200408175452.30637-1-tromey@adacore.com
Headers show
Series
  • Variant part support, plus more
Related show

Message

Tom Tromey April 8, 2020, 5:54 p.m.
Currently, the Ada support in gdb relies on what are called "gnat
encodings" -- which really just means that some debug info is
represented using magic symbol names, attached to other debug objects.
A long term goal here is to slowly remove gnat encodings, in favor of
using standard DWARF.

This series is one step toward that goal.  It adds support for DWARF
variant parts to gdb.  It also brings in support for fields that have
dynamic offsets, and types that have dynamic lengths.  It also adds a
Python API to let pretty-printers know a bit more about dynamic types.

Along the way, the Rust enum code is rewritten to use the new
machinery; this provides benefits visible from Python and MI.  Also,
at least one bug is uncovered for future fixing (see patch #7).

One future direction might be to arrange for resolve_dynamic_type to
record concrete instances of dynamic types, and reuse them when
appropriate.  I haven't attempted this.

Let me know what you think.

Tom

Comments

Tom Tromey April 24, 2020, 7:39 p.m. | #1
>>>>> "Tom" == Tom Tromey <tromey@adacore.com> writes:


Tom> Currently, the Ada support in gdb relies on what are called "gnat
Tom> encodings" -- which really just means that some debug info is
Tom> represented using magic symbol names, attached to other debug objects.
Tom> A long term goal here is to slowly remove gnat encodings, in favor of
Tom> using standard DWARF.

Tom> This series is one step toward that goal.  It adds support for DWARF
Tom> variant parts to gdb.  It also brings in support for fields that have
Tom> dynamic offsets, and types that have dynamic lengths.  It also adds a
Tom> Python API to let pretty-printers know a bit more about dynamic types.

I'm going to check this in now.

Tom