summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2017-11-28 12:44:41 +0000
committerPedro Alves <palves@redhat.com>2017-11-28 12:58:43 +0000
commit3bbcaffd8021c4b43402419c8e4aed1c1272848f (patch)
tree7d5332c2b6d275085e1b95420c2efba723ce0c21
parente623b677c1db4e5d3a7fe2a670b851c7e27d02fa (diff)
downloadbinutils-gdb-users/palves/cxx-breakpoint-improvements-v2.tar.gz
-rw-r--r--gdb/mi/mi-cmd-break.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/gdb/mi/mi-cmd-break.c b/gdb/mi/mi-cmd-break.c
index 6cb1d710fde..75449e8af05 100644
--- a/gdb/mi/mi-cmd-break.c
+++ b/gdb/mi/mi-cmd-break.c
@@ -189,7 +189,8 @@ mi_cmd_break_insert_1 (int dprintf, const char *command, char **argv, int argc)
IGNORE_COUNT_OPT, THREAD_OPT, PENDING_OPT, DISABLE_OPT,
TRACEPOINT_OPT,
EXPLICIT_SOURCE_OPT, EXPLICIT_FUNC_OPT,
- EXPLICIT_LABEL_OPT, EXPLICIT_LINE_OPT
+ EXPLICIT_LABEL_OPT, EXPLICIT_LINE_OPT,
+ QUALIFIED_OPT,
};
static const struct mi_opt opts[] =
{
@@ -205,6 +206,7 @@ mi_cmd_break_insert_1 (int dprintf, const char *command, char **argv, int argc)
{"-function", EXPLICIT_FUNC_OPT, 1},
{"-label", EXPLICIT_LABEL_OPT, 1},
{"-line", EXPLICIT_LINE_OPT, 1},
+ {"-qualified", QUALIFIED_OPT, 0},
{ 0, 0, 0 }
};
@@ -263,6 +265,9 @@ mi_cmd_break_insert_1 (int dprintf, const char *command, char **argv, int argc)
is_explicit = 1;
explicit_loc.line_offset = linespec_parse_line_offset (oarg);
break;
+ case QUALIFIED_OPT:
+ explicit_loc.func_name_match_type = symbol_name_match_type::FULL;
+ break;
}
}
@@ -337,8 +342,9 @@ mi_cmd_break_insert_1 (int dprintf, const char *command, char **argv, int argc)
}
else
{
- location = string_to_event_location_basic (&address, current_language,
- symbol_name_match_type::WILD);
+ location
+ = string_to_event_location_basic (&address, current_language,
+ explicit_loc.func_name_match_type);
if (*address)
error (_("Garbage '%s' at end of location"), address);
}