[RFC] Fix for mishandling of "break 'pthread_create@GLIBC_2.2.5'"
Daniel Jacobowitz
drow@false.org
Fri Jun 6 02:35:00 GMT 2008
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
More information about the Gdb-patches
mailing list