Newbie GDC issues
Ramon
spam at thanks.no
Fri Sep 6 00:34:02 PDT 2013
On Friday, 6 September 2013 at 07:02:56 UTC, Iain Buclaw wrote:
>
> Dynamic arrays are just structs with a length and ptr field.
> So when
> you invoke '.length' in the debugger you aren't calling a
> method, you
> are just retrieving the type's field value.
>
> Currently, the only fancy thing the gdb does with D arrays is
> that it
> pretty prints them. So take for example you have:
>
> { .length = 5, .ptr = "Hello" };
>
>
> Rather than printing the dynamic array like the above, it does a
> printf("%*.s") style operation to print the contents of .ptr,
> but only
> as far as .length. This is important because dynamic arrays
> are not
> expected to be '0' terminated, and you can slice a dynamic
> array into
> smaller arrays without copying data.
>
>
> Having the ability to slice D arrays using [] in gdb is
> something on
> my todo list when I get round to improving gdb for D.
Thanks for the explanation, Iain.
But: Doesn't that mean that myArray[] is just syntactic sugar for
myArray.ptr[i]? And if so wouldn't it make sense to fool gdb,
too, to accept print myArray[4] instead of myArray.ptr[4]?
Funnily btw. "p myArray" prints out the whole array, yet asking
it to print out myArray[3] fails as described.
Thanks also to HS for his hints
A+ -R
More information about the D.gnu
mailing list