From: Daniel Berlin <dan@cgsoftware.com>
To: Jim Blandy <jimb@zwingli.cygnus.com>
Cc: Daniel Berlin <dan@cgsoftware.com>,
Elena Zannoni <ezannoni@cygnus.com>,
gdb-patches@sources.redhat.com
Subject: Re: [RFA] linespec.c change to stop "malformed template specification" error
Date: Thu, 07 Jun 2001 16:40:00 -0000 [thread overview]
Message-ID: <87d78fdfl4.fsf@cgsoftware.com> (raw)
In-Reply-To: <npae3kyln7.fsf@zwingli.cygnus.com>
Jim Blandy <jimb@zwingli.cygnus.com> writes:
> Daniel Berlin <dan@cgsoftware.com> writes:
>> 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.
>
> Either you're misunderstanding the case I'm trying to address, or I'm
> misunderstanding what find_toplevel_char is searching for.
Well, find_toplevel_char is to find a comma at the top level, so we
can try to distinguish between "ranges" of lines, and function arguments.
This is because while we don't *care* about the function arguments
(since they aren't part of the symbol name), we do care about line
ranges.
The list command uses the line ranges, breakpoints don't support them.
But since they both use decode_line_1, we screw up the breakpoints for
the sake of something they don't support anyway (IE the whole "find
the toplevel comma" crap is pointless, since breakpoints don't support
line ranges).
Welcome to the wonders of improper code reuse.
Anyway, since it wanted to seperate out the first part of the line range from
the second, it attempts to find the comma to split it at. Which would
be the first comma at the top level.
Of course, since it didn't take < and > into account, it found a comma
in the middle of a template argument list, and boldly proclaimed:
"I've found the top level comma".
:)
Mind you, as i said, it's completely pointless for breakpoints.
> This is
> the kind of confusion that generates dozens of mail messages, but
> would take two seconds to straighten out in person.
>
> Since the patch is approved either way (with appropriate changes to
> the comment above find_toplevel_char), and I think we all basically
> get what's going on, I'm not going to pursue this further.
I'm also about to submit a better patch, to replace the *breakpoint* parser
with a flex/bison parser.
That way, only the list command requires the evils of decode_line_1.
--
"I can remember the first time I had to go to sleep. Mom said,
"Steven, time to go to sleep." I said, "But I don't know how."
She said, "It's real easy. Just go down to the end of tired and
hang a left." So I went down to the end of tired, and just out
of curiosity I hung a right. My mother was there, and she said
"I thought I told you to go to sleep."
"-Steven Wright
next prev parent reply other threads:[~2001-06-07 16:40 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-05-22 14:06 Daniel Berlin
2001-06-06 16:09 ` Elena Zannoni
2001-06-06 17:00 ` Fernando Nasser
2001-06-06 21:00 ` Jim Blandy
2001-06-06 22:09 ` Daniel Berlin
2001-06-07 8:40 ` Jim Blandy
2001-06-07 8:47 ` macro-expanding expressions in GDB Jim Blandy
2001-06-07 9:01 ` Daniel Berlin
2001-06-07 11:52 ` Jim Blandy
2001-06-07 12:04 ` Daniel Berlin
2001-06-07 11:16 ` Stan Shebs
2001-06-06 23:36 ` [RFA] linespec.c change to stop "malformed template specification" error Daniel Berlin
2001-06-07 6:00 ` Fernando Nasser
2001-06-07 9:09 ` Jim Blandy
2001-06-07 7:40 ` Elena Zannoni
[not found] ` <nppucg1eq5.fsf@zwingli.cygnus.com>
2001-06-07 9:13 ` Daniel Berlin
2001-06-07 11:18 ` Jim Blandy
2001-06-07 11:35 ` Daniel Berlin
2001-06-07 15:22 ` Jim Blandy
2001-06-07 16:40 ` Daniel Berlin [this message]
2001-06-07 10:27 ` Elena Zannoni
2001-06-07 12:30 ` Fernando Nasser
2001-06-07 15:14 ` Jim Blandy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d78fdfl4.fsf@cgsoftware.com \
--to=dan@cgsoftware.com \
--cc=ezannoni@cygnus.com \
--cc=gdb-patches@sources.redhat.com \
--cc=jimb@zwingli.cygnus.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox