This is the mail archive of the archer@sourceware.org mailing list for the Archer project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Stop the Insanity! Linespec Rewrite


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


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