Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Devang Patel <dpatel@apple.com>
To: Geoffrey Keating <geoffk@geoffk.org>
Cc: gcc-patches@gcc.gnu.org, gdb@sources.redhat.com
Subject: Re: [PATCH] Debugging Vector Types
Date: Sat, 23 Apr 2005 00:36:00 -0000	[thread overview]
Message-ID: <80A2E563-8EAA-4D8D-879F-DB3A9A13B238@apple.com> (raw)
In-Reply-To: <m2d5smgxio.fsf@greed.local>


On Apr 22, 2005, at 5:14 PM, Geoffrey Keating wrote:

> 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.

I was just playing safe.

> - 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!)

The doc version I have already lists it as an extension.

---
> There is an AIX extension for type attributes. Following the `='  
> are any number of type attributes. Each one starts with `@' and  
> ends with `;'. Debuggers, including AIX's dbx and GDB 4.10, skip  
> any type attributes they do not recognize. GDB 4.9 and other  
> versions of dbx may not do this. Because of a conflict with C++  
> (see section GNU C++ Stabs), new attributes should not be defined  
> which begin with a digit, `(', or `-'; GDB may be unable to  
> distinguish those from the C++ type descriptor `@'. The attributes  
> are:
>
> aboundary
> boundary is an integer specifying the alignment. I assume it  
> applies to all variables of this type.
> pinteger
> Pointer class (for checking). Not sure what this means, or how  
> integer is interpreted.
> P
> Indicate this is a packed type, meaning that structure fields or  
> array elements are placed more closely in memory, to save memory at  
> the expense of speed.
> ssize
> Size in bits of a variable of this type. This is fully supported by  
> GDB 4.11 and later.
> S
> Indicate that this type is a string instead of an array of  
> characters, or a bitstring instead of a set. It doesn't change the  
> layout of the data being represented, but does enable the debugger  
> to know which type it is.
> V
> Indicate that this type is a vector instead of an array. The only  
> major difference between vectors and arrays is that vectors are  
> passed by value instead of by reference (vector coprocessor  
> extension).

---

> 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;".

-
Devang


  reply	other threads:[~2005-04-23  0:36 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <547BC9E3-4C03-4724-8BB5-BB1A99BB3625@apple.com>
2005-04-23  0:13 ` Geoffrey Keating
2005-04-23  0:36   ` Devang Patel [this message]
2005-04-23  0:51     ` Geoff Keating
2005-04-24 22:35       ` Daniel Jacobowitz
2005-04-25  2:19         ` Devang Patel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=80A2E563-8EAA-4D8D-879F-DB3A9A13B238@apple.com \
    --to=dpatel@apple.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=gdb@sources.redhat.com \
    --cc=geoffk@geoffk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox