From: Doug Evans <xdje42@gmail.com>
To: dtaylor@emc.com
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>,
Eli Zaretskii <eliz@gnu.org>, Keith Seitz <keiths@redhat.com>
Subject: Re: Fwd: Delivery Status Notification (Failure)
Date: Sun, 23 Nov 2014 20:00:00 -0000 [thread overview]
Message-ID: <CAP9bCMQtRinQe5pW-cx+dLFoi42wZ_rD1kOSzTQ8tHeKHZ_bRw@mail.gmail.com> (raw)
In-Reply-To: <CAP9bCMS+7MD+5+nuVa-AtvH4Zwr4Y751SWGMZHXpXQKr6uXfdA@mail.gmail.com>
On Sun, Nov 23, 2014 at 11:18 AM, Doug Evans <xdje42@gmail.com> wrote:
> [+ keiths, since this is linespec related, and I know
> how much he loves linespecs! :-)]
>
> On Thu, Nov 20, 2014 at 6:57 AM, David Taylor
> <dtaylor@usendtaylorx2l.lss.emc.com> wrote:
>> Doug Evans <xdje42@gmail.com> wrote:
>>> The "," in "-at LOCATION," seems a bit random, relative to other commands.
>>>
>>> Maybe it is the best way to go.
>>> If so, I'd like to see the reasons why it exists documented in the code.
>>>
>>> Can we just remove the , and require -- when necessary?
>>
>> It marks the end of the location and the start of the macro. It is
>> patterned after
>>
>> maint agent [-at location,] EXPRESSION
>> and
>> maint agent-eval [-at location,] EXPRESSION
>>
>> I did it the same way for consistency.
>
> Ah. Can't fault that. :-)
>
> Still, I'm more ok with u/i visible hacks in maint commands
> than with normal commands.
> Bubbling this up into non-maint commands means needing
> to now worry about consistency with all the other commands.
>
>> It seems unnecessary, but the location parsing code stops at comma but
>> not at space. Presumably that is so that file names can contain spaces.
>> But, that is just a guess on my part. I personally dislike file names
>> containing spaces.
>
> Such names need to be quoted.
> OTOH c++ functions with parameters, for example,
> don't (usually) need to be quoted.
>
> linespec.c has this:
> static const char * const linespec_keywords[] = { "if", "thread", "task" };
>
> This may not be the best solution, and it might involve a few more
> changes to linespec.c (or elsewhere) but that's one alternative:
> static const char * const linespec_keywords[] = { "if", "thread",
> "task", "--" };
>
> It works, but "--" wasn't intended for this purpose (mark the
> end of the linespec), so it's just a not-well-thought-out-idea.
>
> I tried to think of a situation where using a comma here would
> lead to u/i warts later, but couldn't.
> E.g., if the comma gets used in other contexts
> then will users start complaining that "b foo, thread 1" doesn't work?
> If that day comes we *could* allow the comma in that context.
> But it would be odd that a comma is *required* in some
> contexts and not in others.
>
> In the end, I'm ok with the patch, but
> I think the docs (both offline and online) need to highlight the comma
> as being a requirement for "-at" since it's not intuitive.
> Plus I think we need to document in some linespec-related
> place that "," is now required to be recognized as ending a linespec.
> I don't know if that exists today.
> [FAOD, a "," within a linespec is still ok,
> e.g., "info macro -at foo(int, int), BAR"]
> Ok with those changes.
Re: Plus I think we need to document in some linespec-related
place that "," is now required to be recognized as ending a linespec.
FAOD, I was thinking of, say, adding a comment to the
function-comment for decode_line_full in linespec.h.
E.g.,
--- linespec.h= 2014-11-23 10:30:23.566784217 -0800
+++ linespec.h 2014-11-23 11:55:35.531659067 -0800
@@ -133,7 +133,11 @@ extern struct symtabs_and_lines
entry describing all the matching locations. If FILTER is
non-NULL, then only locations whose canonical name is equal (in the
strcmp sense) to FILTER will be returned; all others will be
- filtered out. */
+ filtered out.
+
+ Note for new callers: If you need a way to mark the end of the linespec
+ in *ARGPTR, fyi the "info macro -at LOCATION, MACRO" command uses a comma.
+ A comma within the linespec is still ok (e.g., "foo (int, int)"). */
extern void decode_line_full (char **argptr, int flags,
struct symtab *default_symtab, int default_line,
or some such.
The point being to make the comma terminator
being part of the spec of what's a valid linespec.
---
IWBN to "fix" the linespec parsing machinery to recognize
the end of the line spec so that the comma wasn't required.
I don't want to make that a prerequisite for this patch,
but down the road if that happens then the comma
could just become optional.
prev parent reply other threads:[~2014-11-23 20:00 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-10 21:41 RFA: info macro [-at LOCATION,] David Taylor
2014-11-11 3:44 ` Eli Zaretskii
2014-11-11 14:01 ` David Taylor
2014-11-11 15:41 ` Eli Zaretskii
2014-11-19 21:00 ` RFA info macro [-at LOCATION,] (v2) David Taylor
2014-11-19 21:20 ` Eli Zaretskii
2014-11-20 2:38 ` Doug Evans
[not found] ` <001a1132e59ca4575e0508413955@google.com>
[not found] ` <CAP9bCMRJr4Fbunbnt-93FYnWUgDqjaLWZ731_rZp-JP8qkKf=w@mail.gmail.com>
2014-11-20 14:58 ` Fwd: Delivery Status Notification (Failure) David Taylor
2014-11-23 19:18 ` Doug Evans
2014-11-23 20:00 ` Doug Evans [this message]
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=CAP9bCMQtRinQe5pW-cx+dLFoi42wZ_rD1kOSzTQ8tHeKHZ_bRw@mail.gmail.com \
--to=xdje42@gmail.com \
--cc=dtaylor@emc.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=keiths@redhat.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