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
|
2013-04-08 Aleksandar Ristovski <aristovski@qnx.com
|
||||||
|
|
||||||
* solib-svr4.c (lm_addr_check): Add const qualifier to 'so' arg.
|
* 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
|
/* Set a breakpoint. This function is shared between CLI and MI
|
||||||
functions for setting a breakpoint. This function has two major
|
functions for setting a breakpoint. This function has two major
|
||||||
modes of operations, selected by the PARSE_CONDITION_AND_THREAD
|
modes of operations, selected by the PARSE_ARG parameter. If
|
||||||
parameter. If non-zero, the function will parse arg, extracting
|
non-zero, the function will parse ARG, extracting location,
|
||||||
breakpoint location, address and thread. Otherwise, ARG is just
|
condition, thread and extra string. Otherwise, ARG is just the
|
||||||
the location of breakpoint, with condition and thread specified by
|
breakpoint's location, with condition, thread, and extra string
|
||||||
the COND_STRING and THREAD parameters. If INTERNAL is non-zero,
|
specified by the COND_STRING, THREAD and EXTRA_STRING parameters.
|
||||||
the breakpoint number will be allocated from the internal
|
If INTERNAL is non-zero, the breakpoint number will be allocated
|
||||||
breakpoint count. Returns true if any breakpoint was created;
|
from the internal breakpoint count. Returns true if any breakpoint
|
||||||
false otherwise. */
|
was created; false otherwise. */
|
||||||
|
|
||||||
int
|
int
|
||||||
create_breakpoint (struct gdbarch *gdbarch,
|
create_breakpoint (struct gdbarch *gdbarch,
|
||||||
char *arg, char *cond_string,
|
char *arg, char *cond_string,
|
||||||
int thread, char *extra_string,
|
int thread, char *extra_string,
|
||||||
int parse_condition_and_thread,
|
int parse_arg,
|
||||||
int tempflag, enum bptype type_wanted,
|
int tempflag, enum bptype type_wanted,
|
||||||
int ignore_count,
|
int ignore_count,
|
||||||
enum auto_boolean pending_break_support,
|
enum auto_boolean pending_break_support,
|
||||||
@ -9641,7 +9641,7 @@ create_breakpoint (struct gdbarch *gdbarch,
|
|||||||
|
|
||||||
lsal = VEC_index (linespec_sals, canonical.sals, 0);
|
lsal = VEC_index (linespec_sals, canonical.sals, 0);
|
||||||
|
|
||||||
if (parse_condition_and_thread)
|
if (parse_arg)
|
||||||
{
|
{
|
||||||
char *rest;
|
char *rest;
|
||||||
/* Here we only parse 'arg' to separate condition
|
/* Here we only parse 'arg' to separate condition
|
||||||
@ -9660,6 +9660,9 @@ create_breakpoint (struct gdbarch *gdbarch,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (*arg != '\0')
|
||||||
|
error (_("Garbage '%s' at end of location"), arg);
|
||||||
|
|
||||||
/* Create a private copy of condition string. */
|
/* Create a private copy of condition string. */
|
||||||
if (cond_string)
|
if (cond_string)
|
||||||
{
|
{
|
||||||
@ -9699,7 +9702,7 @@ create_breakpoint (struct gdbarch *gdbarch,
|
|||||||
init_raw_breakpoint_without_location (b, gdbarch, type_wanted, ops);
|
init_raw_breakpoint_without_location (b, gdbarch, type_wanted, ops);
|
||||||
|
|
||||||
b->addr_string = copy_arg;
|
b->addr_string = copy_arg;
|
||||||
if (parse_condition_and_thread)
|
if (parse_arg)
|
||||||
b->cond_string = NULL;
|
b->cond_string = NULL;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1269,7 +1269,7 @@ enum breakpoint_create_flags
|
|||||||
extern int create_breakpoint (struct gdbarch *gdbarch, char *arg,
|
extern int create_breakpoint (struct gdbarch *gdbarch, char *arg,
|
||||||
char *cond_string, int thread,
|
char *cond_string, int thread,
|
||||||
char *extra_string,
|
char *extra_string,
|
||||||
int parse_condition_and_thread,
|
int parse_arg,
|
||||||
int tempflag, enum bptype wanted_type,
|
int tempflag, enum bptype wanted_type,
|
||||||
int ignore_count,
|
int ignore_count,
|
||||||
enum auto_boolean pending_break_support,
|
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>
|
2013-04-04 Sandra Loosemore <sandra@codesourcery.com>
|
||||||
|
|
||||||
* gdb.cp/cplabel.exp: Allow empty directory in file reported
|
* gdb.cp/cplabel.exp: Allow empty directory in file reported
|
||||||
|
@ -196,6 +196,18 @@ proc test_error {} {
|
|||||||
mi_gdb_test "-var-update *" \
|
mi_gdb_test "-var-update *" \
|
||||||
"\\^done,changelist=\\\[\\\]" \
|
"\\^done,changelist=\\\[\\\]" \
|
||||||
"update varobj for function call"
|
"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 {} {
|
proc test_disabled_creation {} {
|
||||||
|
Loading…
Reference in New Issue
Block a user