March 26, 2012
Hi all,

It's been a few years since I last did some real work on DWARF in dmd (v2.044/2.045), other than touching on OS Xes debug info not too long ago.

At the time I submitted the following enhancement request for the DWARF specification:

http://www.dwarfstd.org/ShowIssue.php?issue=100504.1

I know that some work on debug info has been done since then - does anyone have any input they want to add to this?

Now would be a great time to map out any and all extensions that D needs so they can be included for a future DWARF version.

You can see the forwarded message below.

Thanks,

Robert

---------- Forwarded message ----------
From: Bishop, John E <john.e.bishop@intel.com>
Date: 26 March 2012 21:11
Subject: DWARF issue 100504, "Extensions for D arrays, associative arrays,
and delegates"
To: "robert@octarineparrot.com" <robert@octarineparrot.com>


Robert,

I'm a member of the DWARF committee.  In our last meeting, I was assigned the task of understanding your proposal and helping to turn it into a formal proposal (with page reference, edit directions and the final formal text).

If you don't mind, I'd like to know a bit more about the background of the proposal.

For example, are you working with a compiler, a debugger or both?  Are these concepts core features of D or standard user features (e.g., are they like Fortran COMMON, which is a core feature with important semantics or like Pascal WITH, which is a notational convenience)?  Are these D features primitives (like C++'s "bool") or the result of composition (like "const long long int")?

As I understand your suggestion, I think it's possible to get the same effect with a smaller change to DWARF.  For example we could add a new attribute and define dynamic array types this way:

DW_TAG_structure_type                         // A structure
 DW_AT_D_language_dynamic_array_descriptor   // Attribute tells consumer
what this is
 DW_AT_name [pointer to "darray"]
 [specification of an size_t named "length"}
 [specification of a T* pointer named "ptr"]

In other words, as though it were this C code but with the D-language flag added and something useful where I have "...":

   typedef ... T;

   typedef struct darray_struct {
       size_t  length;
       T      *ptr;
   } darray;

Similarly we could add DW_AT_D_language_associative_array and DW_A_D_language_delegate to standard structure definitions.

Would this simpler proposal work as well for your purposes?

Thanks for any help you can give me,

       -John


March 27, 2012
> Robert,
>
> I'm a member of the DWARF committee.  In our last meeting, I was assigned
> the task of understanding your proposal and helping to turn it into a
> formal proposal (with page reference, edit directions and the final formal
> text).
>
> If you don't mind, I'd like to know a bit more about the background of the
> proposal.
>
> For example, are you working with a compiler, a debugger or both?  Are
> these concepts core features of D or standard user features (e.g., are they
> like Fortran COMMON, which is a core feature with important semantics or
> like Pascal WITH, which is a notational convenience)?  Are these D features
> primitives (like C++'s "bool") or the result of composition (like "const
> long long int")?
>
> As I understand your suggestion, I think it's possible to get the same
> effect with a smaller change to DWARF.  For example we could add a new
> attribute and define dynamic array types this way:
>
> DW_TAG_structure_type                         // A structure
>  DW_AT_D_language_dynamic_array_descriptor   // Attribute tells consumer
> what this is
>  DW_AT_name [pointer to "darray"]
>  [specification of an size_t named "length"}
>  [specification of a T* pointer named "ptr"]
>
> In other words, as though it were this C code but with the D-language flag
> added and something useful where I have "...":
>
>    typedef ... T;
>
>    typedef struct darray_struct {
>        size_t  length;
>        T      *ptr;
>    } darray;
>
> Similarly we could add DW_AT_D_language_associative_array and
> DW_A_D_language_delegate to standard structure definitions.
>
> Would this simpler proposal work as well for your purposes?
>
> Thanks for any help you can give me,
>
>        -John

This would indeed be exactly what we need.
_______________________________________________
dmd-internals mailing list
dmd-internals@puremagic.com
http://lists.puremagic.com/mailman/listinfo/dmd-internals