On Thu, 04 Jun 2015 09:24:36 +0200, Manuel López-Ibáñez wrote:
> On 3 June 2015 at 22:58, Jan Kratochvil <[email protected]> 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