diff options
author | Xavier Roirand <roirand@adacore.com> | 2018-01-25 11:09:23 +0100 |
---|---|---|
committer | Xavier Roirand <roirand@adacore.com> | 2018-01-31 13:42:30 +0100 |
commit | 56ecd069f031d6bcdaa46664c68a16cb27b379c3 (patch) | |
tree | c895e051c399a2881e766e2ac0221b2c7cac41a1 /gdb/mi | |
parent | 4fa955b25e31cd071ca7f3b03a2cc89811f9705d (diff) | |
download | gdb-56ecd069f031d6bcdaa46664c68a16cb27b379c3.zip gdb-56ecd069f031d6bcdaa46664c68a16cb27b379c3.tar.gz gdb-56ecd069f031d6bcdaa46664c68a16cb27b379c3.tar.bz2 |
(Ada) C++fy conditional string when catching exception.
This commit C++fy the conditional string used when catching Ada exception.
gdb/ChangeLog:
* ada-lang.c (catch_ada_exception_command_split)
(create_ada_exception_catchpoint) <cond_string>: Change parameter
type. Update code accordingly.
(catch_ada_exception_command, catch_ada_handlers_command): Use
C++ string instead of char* for conditional var.
(catch_ada_assert_command_split) <cond_string>: Change parameter
type. Update code accordingly.
(catch_assert_command): Use C++ string instead of char* for
conditional var.
* ada-lang.h (create_ada_exception_catchpoint) <cond_string>:
Update declaration.
* mi/mi-cmd-catch.c (mi_cmd_catch_assert, mi_cmd_catch_exception):
Use std::string instead of char* for condition string.
Tested on x86_64-linux.
Diffstat (limited to 'gdb/mi')
-rw-r--r-- | gdb/mi/mi-cmd-catch.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/gdb/mi/mi-cmd-catch.c b/gdb/mi/mi-cmd-catch.c index 38b96cc..a0f311a 100644 --- a/gdb/mi/mi-cmd-catch.c +++ b/gdb/mi/mi-cmd-catch.c @@ -32,7 +32,7 @@ void mi_cmd_catch_assert (const char *cmd, char *argv[], int argc) { struct gdbarch *gdbarch = get_current_arch(); - char *condition = NULL; + std::string condition; int enabled = 1; int temp = 0; @@ -62,7 +62,7 @@ mi_cmd_catch_assert (const char *cmd, char *argv[], int argc) switch ((enum opt) opt) { case OPT_CONDITION: - condition = oarg; + condition.assign (oarg); break; case OPT_DISABLED: enabled = 0; @@ -79,10 +79,6 @@ mi_cmd_catch_assert (const char *cmd, char *argv[], int argc) error (_("Invalid argument: %s"), argv[oind]); scoped_restore restore_breakpoint_reporting = setup_breakpoint_reporting (); - /* create_ada_exception_catchpoint needs CONDITION to be xstrdup'ed, - and will assume control of its lifetime. */ - if (condition != NULL) - condition = xstrdup (condition); create_ada_exception_catchpoint (gdbarch, ada_catch_assert, NULL, condition, temp, enabled, 0); } @@ -93,7 +89,7 @@ void mi_cmd_catch_exception (const char *cmd, char *argv[], int argc) { struct gdbarch *gdbarch = get_current_arch(); - char *condition = NULL; + std::string condition; int enabled = 1; char *exception_name = NULL; int temp = 0; @@ -128,7 +124,7 @@ mi_cmd_catch_exception (const char *cmd, char *argv[], int argc) switch ((enum opt) opt) { case OPT_CONDITION: - condition = oarg; + condition.assign (oarg); break; case OPT_DISABLED: enabled = 0; @@ -156,12 +152,10 @@ mi_cmd_catch_exception (const char *cmd, char *argv[], int argc) error (_("\"-e\" and \"-u\" are mutually exclusive")); scoped_restore restore_breakpoint_reporting = setup_breakpoint_reporting (); - /* create_ada_exception_catchpoint needs EXCEPTION_NAME and CONDITION - to be xstrdup'ed, and will assume control of their lifetime. */ + /* create_ada_exception_catchpoint needs EXCEPTION_NAME to be + xstrdup'ed, and will assume control of its lifetime. */ if (exception_name != NULL) exception_name = xstrdup (exception_name); - if (condition != NULL) - condition = xstrdup (condition); create_ada_exception_catchpoint (gdbarch, ex_kind, exception_name, condition, temp, enabled, 0); |