This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Debugging Vector Types


Devang Patel <dpatel@apple.com> writes:

> GCC encodes Vector Types as an array of N elements (at least, in
> STABS format). This means, GDB is not able to distinguish it from a
> normal Array. And these may lead to confusing output from GDB. One of
> our user reported that for
> 
>      vector unsigned char a = (vector unsigned char)  (
> 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 );
> 
> gdb prints
> 
>      (gdb) print a
>      $1 = "\001\002\003\004\005\006\a\b\t\n\v\f\r\016\017\020"
> 
> If following is used
> 
>      vector unsigned char a = (vector unsigned char)  (
> 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p' );
> 
> then gdb prints
> 
>      (gdb) print a
>      $1 = "abcdefghijklmnop"
> 
> but, it's not vector!
> 
> If GCC provides GDB some kind of hints then GDB may be able to
> display something meaningful. This patch attaches "attribute vector"
> to the stabs string used to represent vector types. I am told that
> GDB ignores attributes that it does not recognize. So we can update
> GCC independently. I tested small test cases and our darwin GDB does
> not get offended by this additional attribute.
> 
>          * dbxout.c (dbxout_type): Emit attribute vector.
>          * config/darwin.h (DBX_USE_VECTOR_ATTRIBUTE): Define.
>          * doc/tm.texi (DBX_USE_VECTOR_ATTRIBUTE): Document.
> 
>          * gcc.dg/stabs-attrib-vect.c: New test.
> 
> Bootstrapped and tested on powerpc-darwin.
> OK  for mainline ?

- I don't think this should be Darwin-specific.  Shouldn't everyone have it?
  It's not like it can break Solaris dbx or something, unless people are
  using vector types, in which case IMO they should just use GDB.

- You need to update stabs.texi, which I think lives in GDB.  (It's
  the only stabs documentation we have, so keeping it up-to-date is
  important!)

Other than that the patch seems reasonable enough to me.

The GDB people may have some more comments, so I've CCed them.

GDB people: As I understand the patch, what it does is add '@V;' to
the end to the stab for the type, so it looks like "vi:(0,16)=@V;".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]