mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-27 22:10:32 +00:00
create_breapoint / explicit mode: Error out if there's garbage after the breakpoint location.
If !PARSE_CONDITION_AND_THREAD, then ARG is just the location, nothing else. The fact that the describing comment of create_breakpoint doesn't mention this just looks like an oversight of when extra_string was added. "parse_condition_and_thread" has been a misnomer ever since extra_string was added -- better rename it avoid more confusion. This makes it "parse_arg", as that'll remain stable even if/when more explicit parameters are added. gdb/ 2013-04-08 Pedro Alves <palves@redhat.com> Keith Seitz <keiths@redhat.com> * breakpoint.c (create_breakpoint): Rename "parse_condition_and_thread" parameter to "parse_arg". Update describing comment. If !PARSE_ARG, then error out if ARG is not the empty string after extracting the location. * breakpoint.h (create_breakpoint): Rename "parse_condition_and_thread" parameter to "parse_arg". gdb/testsuite/ 2013-04-08 Pedro Alves <palves@redhat.com> * gdb.mi/mi-break.exp (test_error): Add tests with garbage after the location.
This commit is contained in:
parent
f65ce5fb99
commit
f6de8ec262
@ -1,3 +1,13 @@
|
||||
2013-04-08 Pedro Alves <palves@redhat.com>
|
||||
Keith Seitz <keiths@redhat.com>
|
||||
|
||||
* breakpoint.c (create_breakpoint): Rename
|
||||
"parse_condition_and_thread" parameter to "parse_arg". Update
|
||||
describing comment. If !PARSE_ARG, then error out if ARG is not
|
||||
the empty string after extracting the location.
|
||||
* breakpoint.h (create_breakpoint): Rename
|
||||
"parse_condition_and_thread" parameter to "parse_arg".
|
||||
|
||||
2013-04-08 Aleksandar Ristovski <aristovski@qnx.com
|
||||
|
||||
* solib-svr4.c (lm_addr_check): Add const qualifier to 'so' arg.
|
||||
|
@ -9510,20 +9510,20 @@ decode_static_tracepoint_spec (char **arg_p)
|
||||
|
||||
/* Set a breakpoint. This function is shared between CLI and MI
|
||||
functions for setting a breakpoint. This function has two major
|
||||
modes of operations, selected by the PARSE_CONDITION_AND_THREAD
|
||||
parameter. If non-zero, the function will parse arg, extracting
|
||||
breakpoint location, address and thread. Otherwise, ARG is just
|
||||
the location of breakpoint, with condition and thread specified by
|
||||
the COND_STRING and THREAD parameters. If INTERNAL is non-zero,
|
||||
the breakpoint number will be allocated from the internal
|
||||
breakpoint count. Returns true if any breakpoint was created;
|
||||
false otherwise. */
|
||||
modes of operations, selected by the PARSE_ARG parameter. If
|
||||
non-zero, the function will parse ARG, extracting location,
|
||||
condition, thread and extra string. Otherwise, ARG is just the
|
||||
breakpoint's location, with condition, thread, and extra string
|
||||
specified by the COND_STRING, THREAD and EXTRA_STRING parameters.
|
||||
If INTERNAL is non-zero, the breakpoint number will be allocated
|
||||
from the internal breakpoint count. Returns true if any breakpoint
|
||||
was created; false otherwise. */
|
||||
|
||||
int
|
||||
create_breakpoint (struct gdbarch *gdbarch,
|
||||
char *arg, char *cond_string,
|
||||
int thread, char *extra_string,
|
||||
int parse_condition_and_thread,
|
||||
int parse_arg,
|
||||
int tempflag, enum bptype type_wanted,
|
||||
int ignore_count,
|
||||
enum auto_boolean pending_break_support,
|
||||
@ -9641,7 +9641,7 @@ create_breakpoint (struct gdbarch *gdbarch,
|
||||
|
||||
lsal = VEC_index (linespec_sals, canonical.sals, 0);
|
||||
|
||||
if (parse_condition_and_thread)
|
||||
if (parse_arg)
|
||||
{
|
||||
char *rest;
|
||||
/* Here we only parse 'arg' to separate condition
|
||||
@ -9660,6 +9660,9 @@ create_breakpoint (struct gdbarch *gdbarch,
|
||||
}
|
||||
else
|
||||
{
|
||||
if (*arg != '\0')
|
||||
error (_("Garbage '%s' at end of location"), arg);
|
||||
|
||||
/* Create a private copy of condition string. */
|
||||
if (cond_string)
|
||||
{
|
||||
@ -9699,7 +9702,7 @@ create_breakpoint (struct gdbarch *gdbarch,
|
||||
init_raw_breakpoint_without_location (b, gdbarch, type_wanted, ops);
|
||||
|
||||
b->addr_string = copy_arg;
|
||||
if (parse_condition_and_thread)
|
||||
if (parse_arg)
|
||||
b->cond_string = NULL;
|
||||
else
|
||||
{
|
||||
|
@ -1269,7 +1269,7 @@ enum breakpoint_create_flags
|
||||
extern int create_breakpoint (struct gdbarch *gdbarch, char *arg,
|
||||
char *cond_string, int thread,
|
||||
char *extra_string,
|
||||
int parse_condition_and_thread,
|
||||
int parse_arg,
|
||||
int tempflag, enum bptype wanted_type,
|
||||
int ignore_count,
|
||||
enum auto_boolean pending_break_support,
|
||||
|
@ -1,3 +1,8 @@
|
||||
2013-04-08 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* gdb.mi/mi-break.exp (test_error): Add tests with garbage after
|
||||
the location.
|
||||
|
||||
2013-04-04 Sandra Loosemore <sandra@codesourcery.com>
|
||||
|
||||
* gdb.cp/cplabel.exp: Allow empty directory in file reported
|
||||
|
@ -196,6 +196,18 @@ proc test_error {} {
|
||||
mi_gdb_test "-var-update *" \
|
||||
"\\^done,changelist=\\\[\\\]" \
|
||||
"update varobj for function call"
|
||||
|
||||
# Try setting breakpoints with garbage after the location.
|
||||
|
||||
# "if" only works in the CLI. It's not supposed to be accepted by
|
||||
# MI. The way to specify a condition is with -c.
|
||||
mi_gdb_test "-break-insert \"callme if i < 4\"" \
|
||||
".*\\^error,msg=\"Garbage 'if i < 4' at end of location\"" \
|
||||
"breakpoint with garbage after location"
|
||||
|
||||
mi_gdb_test "-break-insert -c i==4 \"callme if i < 4\"" \
|
||||
".*\\^error,msg=\"Garbage 'if i < 4' at end of location\"" \
|
||||
"conditional breakpoint with garbage after location"
|
||||
}
|
||||
|
||||
proc test_disabled_creation {} {
|
||||
|
Loading…
Reference in New Issue
Block a user