X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fbreak-catch-sig.c;h=c475e8aca57244b347bb0932f8f08cc672fb24a1;hb=62e6599087efba193e0156d89ee65fb74fc99cb2;hp=c8529de8ad422ffc3ece8e90ac67fa51b7e54487;hpb=f746a1544499acc20aa28dcdbcd2ea6df5548889;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/break-catch-sig.c b/gdb/break-catch-sig.c index c8529de8ad..c475e8aca5 100644 --- a/gdb/break-catch-sig.c +++ b/gdb/break-catch-sig.c @@ -1,6 +1,6 @@ /* Everything about signal catchpoints, for GDB. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -28,6 +28,7 @@ #include "valprint.h" #include "cli/cli-utils.h" #include "completer.h" +#include "cli/cli-style.h" #include @@ -145,7 +146,7 @@ signal_catchpoint_remove_location (struct bp_location *bl, static int signal_catchpoint_breakpoint_hit (const struct bp_location *bl, - struct address_space *aspace, + const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws) { @@ -241,7 +242,8 @@ signal_catchpoint_print_one (struct breakpoint *b, } else uiout->field_string ("what", - c->catch_all ? "" : ""); + c->catch_all ? "" : "", + metadata_style.style ()); uiout->text ("\" "); if (uiout->is_mi_like_p ()) @@ -317,15 +319,14 @@ static void create_signal_catchpoint (int tempflag, std::vector &&filter, bool catch_all) { - struct signal_catchpoint *c; struct gdbarch *gdbarch = get_current_arch (); - c = new signal_catchpoint (); - init_catchpoint (c, gdbarch, tempflag, NULL, &signal_catchpoint_ops); - c->signals_to_be_caught = filter; + std::unique_ptr c (new signal_catchpoint ()); + init_catchpoint (c.get (), gdbarch, tempflag, NULL, &signal_catchpoint_ops); + c->signals_to_be_caught = std::move (filter); c->catch_all = catch_all; - install_breakpoint (0, c, 1); + install_breakpoint (0, std::move (c), 1); } @@ -333,7 +334,7 @@ create_signal_catchpoint (int tempflag, std::vector &&filter, list, which is empty if no filtering is required. */ static std::vector -catch_signal_split_args (char *arg, bool *catch_all) +catch_signal_split_args (const char *arg, bool *catch_all) { std::vector result; bool first = true; @@ -344,12 +345,12 @@ catch_signal_split_args (char *arg, bool *catch_all) gdb_signal signal_number; char *endptr; - gdb::unique_xmalloc_ptr one_arg (extract_arg (&arg)); - if (one_arg == NULL) + std::string one_arg = extract_arg (&arg); + if (one_arg.empty ()) break; /* Check for the special flag "all". */ - if (strcmp (one_arg.get (), "all") == 0) + if (one_arg == "all") { arg = skip_spaces (arg); if (*arg != '\0' || !first) @@ -362,14 +363,14 @@ catch_signal_split_args (char *arg, bool *catch_all) first = false; /* Check if the user provided a signal name or a number. */ - num = (int) strtol (one_arg.get (), &endptr, 0); + num = (int) strtol (one_arg.c_str (), &endptr, 0); if (*endptr == '\0') signal_number = gdb_signal_from_command (num); else { - signal_number = gdb_signal_from_name (one_arg.get ()); + signal_number = gdb_signal_from_name (one_arg.c_str ()); if (signal_number == GDB_SIGNAL_UNKNOWN) - error (_("Unknown signal name '%s'."), one_arg.get ()); + error (_("Unknown signal name '%s'."), one_arg.c_str ()); } result.push_back (signal_number); @@ -382,7 +383,7 @@ catch_signal_split_args (char *arg, bool *catch_all) /* Implement the "catch signal" command. */ static void -catch_signal_command (char *arg, int from_tty, +catch_signal_command (const char *arg, int from_tty, struct cmd_list_element *command) { int tempflag; @@ -424,8 +425,6 @@ initialize_signal_catchpoint_ops (void) ops->explains_signal = signal_catchpoint_explains_signal; } -initialize_file_ftype _initialize_break_catch_sig; - void _initialize_break_catch_sig (void) {