Discussion on D support in gdb

Martin Nowak dawg at dawgfoto.de
Wed Nov 23 06:07:37 PST 2011


On Tue, 22 Nov 2011 16:19:00 +0100, Martin Nowak <dawg at dawgfoto.de> wrote:

> On Tue, 22 Nov 2011 04:18:47 +0100, Andrei Alexandrescu  
> <SeeWebsiteForEmail at 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


More information about the Digitalmars-d mailing list