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: printing "variable-sized" registers


On Monday 06 June 2005 17:56, Daniel Jacobowitz wrote:
> On Mon, Jun 06, 2005 at 05:52:07PM +0400, Vladimir Prus wrote:
> > > The last one.  The best you can do the rest of the time is going to be
> > > giving them a type containing the maximum number of values and fill in
> > > with dummies - maybe also including the count?
> >
> > This's what I was doing -- assigning "array of 32 uin64s" type to those
> > registers and they are printed with "info all-registers", but the dummy
> > values do no look nice when presented to the user.
>
> Right.  You can correct how they're printed in info registers and info
> all-registers by providing your own print_registers_info.

But that won't help with the "print" command. 

> > > If you want "print $reg" to display them nicely, you're going to need
> > > to teach GDB's type system about it somehow.  I have no idea what that
> > > change would look like or how it would work, but it could be generally
> > > useful - it's the same concept as prettyprinting a tagged union, I
> > > think.
> >
> > Ok, understood. With the attached patch I get what I want, but I have no
> > idea if this patch is good or not.
>
> No, I don't think this is an acceptable way to do it - too inelegant.
> I don't know.

Well, to teach gdb type system that array can have variable size, we need to
pass the size as the part of value. I'm not happy with hardcoded 'unsigned 
int', but making size type configuration would be a much larger change.

Anyway, since this is rather special case, I can live with local patches.

- Volodya


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