On Thu, 04 Jun 2015 09:24:36 +0200, Manuel López-Ibáñez wrote:
> On 3 June 2015 at 22:58, Jan Kratochvil <jan.kratoch...@redhat.com> wrote:
> 
> > In general parsing LHS vs. RHS is not so trivial:
> >         *array1@10
> >         expression wrapped into ->
> >         (*array2+"a@c"[1]+'@'+'\''@(*array1@10)[5])[2]
> >
> 
> Is this a real case? I cannot understand what this means, but it could
> simply be that I'm only familiar with the most basic uses of @
> together with 'print'.

I made a mistake there but unimportant one, let's say the expression is:
        "a@c"[1]+'@'+'\''+(*array2@(*array1@10)[5])[2]
I do not find splitting this expression to LHS@RHS in GDB to be easy.

These two expressions are equivalent for all operations except of sizeof():
        pointer
        (*pointer@ANYTHING)

So the expression
        "a@c"[1]+'@'+'\''+(*array2@(*array1@10)[5])[2]
is equivalent to:
        "a@c"[1]+'@'+'\''+(*array2@  array1    [5])[2]
is equivalent to:
        "a@c"[1]+'@'+'\''+  array2                 [2]
There can be a GDB function which takes X and Y and evaluates:
        "a@c"[1]+'@'+'\''+(*X     @  Y         [5])[2]
There can be a GDB function which takes X and Y and evaluates:
                                   (*X     @Y )


With these constructs I want to say that it is not easy to make the LHS@RHS
split in GDB without limiting valid expressions it can accept.


Jan

Reply via email to