This is the mail archive of the
archer@sourceware.org
mailing list for the Archer project.
Re: Stop the Insanity! Linespec Rewrite
- From: Tom Tromey <tromey at redhat dot com>
- To: Keith Seitz <keiths at redhat dot com>
- Cc: archer at sourceware dot org
- Date: Fri, 02 Mar 2012 09:59:44 -0700
- Subject: Re: Stop the Insanity! Linespec Rewrite
- References: <4F501EC1.3050104@redhat.com>
Keith> Earlier this month, I dug this out of mothballs, and it is now time to
Keith> submit the work-in-progress for comment. This is *not* a finished
Keith> design and/or implementation! It is simply a place to stop along the
Keith> road and ask for advice, for a fresh set of eyes. Consider this akin
Keith> to an RFC.
I like the direction this is headed.
It is ready for the cleanup-and-submit phase, IMO.
Keith> I'm sure there are some other requirements/wish-list items which I've
Keith> forgotten. These are just basically mine.
Eventually --
* Allow fine-grained breakpoint re-setting by allowing a parsed linespec
to be evaluated in a particular context.
* Reimplement linespec completion.
Keith> o We now have a (trivial) parser and a lexer. The lexer "word" breaks
Keith> the input on ':', but it does know about "::" as a scope operator for
Keith> C++ (but nothing on ObjC).
>From reading the code I had a feeling that a leading ":" wasn't handled
properly. So I tried it, and `b ::foo' causes an internal error.
A couple other notes -
linespec_parse_line_offset only allows decimal but the lexer allows hex.
But why bother with hex?
I noticed the code is missing 'const' in a number of places.
Keith> For example, you cannot do: "break
Keith> klass::'operator +'" anymore.
What is the issue with this one?
Keith> o Probably lots of cleanup to do. Probably goofed/thinko'd a few
Keith> things, too, especially in the area of ambiguous linespecs. This is
Keith> part of the reason for exposing this less-than-beta quality code to
Keith> other developers and maintainers. I still have comments to myself all
Keith> over the place (comments with "!!" and #if WHATS_THIS_FOR). Who needs
Keith> a stinkin' notebook!? I take notes in the code.
Hah, me too sometimes.
I saw the WHATS_THIS_FOR. I'm not sure what it is for, but on some
platforms a symbol can start with "$", so maybe it is handling that
case. You can maybe construct one with gcc -fdollars-in-identifiers.
Tom