On Tue, 22 Nov 2011 16:19:00 +0100, Martin Nowak <d...@dawgfoto.de> wrote:
On Tue, 22 Nov 2011 04:18:47 +0100, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:
Maybe someone knowledgeable could chime in:
http://sourceware.org/ml/gdb/2011-11/msg00066.html
Andrei
I think we should follow Tom Tromney's proposal to add the extensions
under the GNU vendor space, i.e. prefix them with 0x41xx.
Numbers hopefully don't fall under licensing issues.
It should be fairly straightforward to improve gdb debugging support
given that
changes are accepted on either side. The GDB codebase is a slightly
unfriendly
environment but getting rid of 'p ((char*[2])str)[1]' would be great.
I would volunteer to do the implementation but it would be great if
someone helped with
clarifying the following issues.
- Can we slowly start to acquire DWARF-3/4?
Definitely interesting, it would allow to reduce the debug info size
and adds more versatile constructs. DWARF3 support starts June 2006
(gdb-6.5),
DWARF4 with April 2010 (gdb-7.2).
The biggest issue is that OSX is stuck on a terribly old gdb-6.35.
- Why were extensions chosen over say representing an array as two
field struct?
It is possible to fully represent D arrays as DW_TAG_array_type in DWARF4
as it any expressions for the data base address and the array length.
Given this it's unlikely that adding a specific darray tag is needed.
Gdb has currently no support for dynamic arrays at all.
It's probably more useful to emit them as struct { size_t length; T[0]
data; },
which is well supported even for DWARF2.
- There is this request by Robert Clipsham
http://dwarfstd.org/ShowIssue.php?issue=100504.1.
What's the state of this, it wouldn't be needed any longer.
- We should contact http://www.zero-bugs.com, it is said to support the
dwarf extensions and would need to be changed.
- Find out who else is affected by changing the current extensions.
- Fixing the D-ABI specification.
- Are there other DWARF debuggers that we should take into account?
- Adding a page to GNU wiki describing the D extensions.
- We could probably use DW_TAG_GNU_template_parameter_pack for
variadic template arguments.
http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates
martin