This is the mail archive of the gdb-patches@sourceware.org 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]
Other format: [Raw text]

Re: [RFC] Fix for mishandling of "break 'pthread_create@GLIBC_2.2.5'"


On Thu, Jun 05, 2008 at 07:14:25PM -0700, Paul Pluzhnikov wrote:
> > If I'm right, that implies that this breaks:
> >
> > (gdb) break 'foo.c':13
> 
> But that is *already* broken:
> 
> (gdb) b t.c:8
> Breakpoint 1 at 0x400308: file t.c, line 8.
> (gdb) b "t.c":8
> Breakpoint 2 at 0x400308: file t.c, line 8.
> (gdb) b 't.c':8
> No source file named t.c'.
> (gdb)

Hmm, how peculiar.

> I can fix that (and I believe it should be fixed), but it appears
> that single and double quotes are treated quite differently in
> linespec.c
> 
> Is there maybe a reason for this?

Hysterical raisins?  This code has a long and messy history.  If you
think it's bad now, you should go find a version before David
Carlton's heroic untangling of it.

> > We need to call locate_first_half to separate the filename from the
> > line number.  There's also the 'foo.c'::staticvar form to worry about.
> 
> That case already works correctly (remember -- variables go through
> totally different path).

So I suppose break 'foo.c'::staticfunc is broken too.

> +
> +  if (p[0] == '\'')
> +    {
> +      char *q = p + 1;
> +      for (; *q && q[0] != '\''; q++) { }
> +      if (q[0] == '\'')
> +        q++;
> +      else
> +        error (_("missing closing quote in command"));
> +      p = q;
> +    }
>    for (; *p; p++)
>      {
>        if (p[0] == '<')
> 

Except, do we really want to keep searching past the single quote?
(I'm not saying you're wrong... too tired to straighten this out
conclusively tonight.)

-- 
Daniel Jacobowitz
CodeSourcery


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