This is the mail archive of the gdb-patches@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]

Re: [RFA] linespec.c change to stop "malformed template specification" error


Jim Blandy <jimb@zwingli.cygnus.com> writes:

> Daniel Berlin <dan@cgsoftware.com> writes:
>> > So finding breakpoint names requires parsing (almost) arbitrary
>> > expressions.
>> Only if you allow arbitrary names.
>> We don't.
>> So this leaves allowing a superset.
> 
> Sorry, I don't understand what you mean.

We don't allow expressions inside the line specifications right now.

Try "break (5 < 10) ? 10 : 20".

So the trouble we run into right now is because due to us wanting to
do good error messages, without any kind of a real parser, we
sometimes incorrectly split out what the function name is from the rest of the
line specification.

The solution to this is to allow a superset of what we do now (or use
a real parser, i have one ready if we like), at the expense of error messages. 
Right now, we don't accept things we should. We'd be better off
accepting things we shouldn't (ie Daniel<int::fred), and complaining
that we couldn't find "Daniel<int", then we would not accepting
something like "Daniel<int, int>::fred", which is what we do now,
because of the problem in find_toplevel_char.

If you want to allow arbitrary expressions inside line specifications,
well, that's a whole nother can of worms.

I'm trying to solve the problem above (that we incorrectly parse the
linespec typed in, in the form of incorrectly determining what part is
the function name, if there is one). You seem to be saying the
solution won't work because it'll break arbitrary expressions in
names.

But we don't support arbitrary expressions in names *anyway*.  
It's like saying "if you do this to the car, it won't be able to
hover." when the car can't hover anyway.
:)

If we want to discuss doing proper evaluation of the expressions that
may occur in a linespec, then lets do that. But that's not what my
patch was intending to solve.


-- 
"One time I went to a museum where all the work in the museum had
been done by children.  They had all the paintings up on
refrigerators.
"-Steven Wright


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