This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Debugging Vector Types
- From: Geoffrey Keating <geoffk at geoffk dot org>
- To: Devang Patel <dpatel at apple dot com>
- Cc: gcc-patches at gcc dot gnu dot org, gdb at sources dot redhat dot com
- Date: 22 Apr 2005 17:14:07 -0700
- Subject: Re: [PATCH] Debugging Vector Types
- References: <547BC9E3-4C03-4724-8BB5-BB1A99BB3625@apple.com>
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;".