MI: type prefixes for values

Vladimir Prus ghost@cs.msu.su
Fri Feb 17 14:43:00 GMT 2006


On Friday 17 February 2006 17:26, Bob Rossi wrote:

> >   if (*start == '{')
> >     {
> >         // Gdb uses '{' in two cases:
> >         // - composites (arrays and structures)
> >         // - pointers to functions. In this case type is
> >         //   enclosed in "{}". Not sure why it's so, as
> >         //   when printing pointer, type is in parenthesis.
> >         if (type == typePointer)
> >         {
> >             // Looks like type in braces at the beginning. Strip it.
> >             start = skipDelim(start, '{', '}');
> >         }
> >         else
> >         {
> >             // Looks like composite, strip the braces and return.
> >             return QCString(start+1, end - start -1);
> >         }
>

Hi Bob,

> I have to say, this looks like a problem with the way you parse the
> output of GDB. There should be no "stripping". If you parse it into a
> data structure, you simply walk that structure and get the info you
> want.

I'm afraid I don't get you. If I'm given literal string 
"{int (*)(int)} 0x12345678" by gdb, and I want to display it without "{}", 
then I surely have to remove the "{}" part, no?

Or you wanted to say I should use variable objects and traverse the tree 
structure they have? If so, can you expand on this?

Thanks,
Volodya



More information about the Gdb mailing list