This is the mail archive of the
archer@sourceware.org
mailing list for the Archer project.
Re: Stop the Insanity! Linespec Rewrite
> Actually it was a failure on the new parser to properly deal with
> parse_to_comma_and_eval (used in linespec_expression_to_pc), which
> retokenizes the input based on whitespace.
Our emails crossed paths :-)
> Could you verify that I didn't break anything else?
Of course. You've got to love git and the fact that you're making
fast-forward pushes (instead of rebasing + forced push), which
hugely simplifies my task.
Anyway, all this rambling to say that the testsuite runs clean.
I also forgot to say that your patch improves the diagnostic
in the following case:
--- Regression: KB27-008__file_star_line_linespec:break foo.adb:*:3
- Could not match y-or-n question
Function "*:3" not defined in "foo.adb".
Make breakpoint pending on future shared library load
- Against input line
Function "*" not defined in "foo.adb".
Make breakpoint pending on future shared library load
The difference is that is says function "*" instead of "*:3" when
doing:
(gdb) break foo.adb:*:3
For the record, "*" used to be a way in AdaCore's debugger to say
"break on all instances". It was a long long time ago, and Paul and
I killed that syntax since then, and we have a check to verify
that it returns an error.
I wonder if it would work with an operator, though... I think you'd
need the double-quotes. Aha!
(gdb) b ops.adb:"*":35
Breakpoint 1 at 0x40217a: file /[...]/ops.adb, line 35.
(gdb) b ops.adb:*:35
Function "*:35" not defined in "ops.adb".
Make breakpoint pending on future shared library load? (y or [n]) n
And your debugger behaves beautifully as well:
(gdb) b ops.adb:"*":35
Breakpoint 1 at 0x40217a: file /[...]/ops.adb, line 35.
(gdb) b ops.adb:*:35
Function "*" not defined in "ops.adb".
Make breakpoint pending on future shared library load? (y or [n]) n
(this is using the gdb.ada/operator_bp testcase).
I need to augment that testcase, now :-/.
--
Joel