X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fbtrace.c;h=d41e3c4f8f91ac102a76207437a80b1545590f1b;hb=cee00f171520eb85867230d4cbed34480c64e71e;hp=8bed31cdac0bc3bfce4d340aeb9fbbe4d8c12ab5;hpb=554ac434b02465f1fc925b0ae3393fb841e0d59c;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/btrace.c b/gdb/btrace.c index 8bed31cdac..d41e3c4f8f 100644 --- a/gdb/btrace.c +++ b/gdb/btrace.c @@ -1,6 +1,6 @@ /* Branch trace support for GDB, the GNU debugger. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. Contributed by Intel Corp. @@ -82,10 +82,10 @@ ftrace_print_function_name (const struct btrace_function *bfun) sym = bfun->sym; if (sym != NULL) - return SYMBOL_PRINT_NAME (sym); + return sym->print_name (); if (msym != NULL) - return MSYMBOL_PRINT_NAME (msym); + return msym->print_name (); return ""; } @@ -197,7 +197,7 @@ ftrace_function_switched (const struct btrace_function *bfun, /* If the minimal symbol changed, we certainly switched functions. */ if (mfun != NULL && msym != NULL - && strcmp (MSYMBOL_LINKAGE_NAME (mfun), MSYMBOL_LINKAGE_NAME (msym)) != 0) + && strcmp (mfun->linkage_name (), msym->linkage_name ()) != 0) return 1; /* If the symbol changed, we certainly switched functions. */ @@ -206,7 +206,7 @@ ftrace_function_switched (const struct btrace_function *bfun, const char *bfname, *fname; /* Check the function name. */ - if (strcmp (SYMBOL_LINKAGE_NAME (fun), SYMBOL_LINKAGE_NAME (sym)) != 0) + if (strcmp (fun->linkage_name (), sym->linkage_name ()) != 0) return 1; /* Check the location of those functions, as well. */ @@ -926,7 +926,7 @@ ftrace_bridge_gap (struct btrace_thread_info *btinfo, best_r = NULL; /* We search the back traces of LHS and RHS for valid connections and connect - the two functon segments that give the longest combined back trace. */ + the two function segments that give the longest combined back trace. */ for (cand_l = lhs; cand_l != NULL; cand_l = ftrace_get_caller (btinfo, cand_l)) @@ -1533,7 +1533,7 @@ btrace_compute_ftrace_1 (struct thread_info *tp, return; } - internal_error (__FILE__, __LINE__, _("Unkown branch trace format.")); + internal_error (__FILE__, __LINE__, _("Unknown branch trace format.")); } static void @@ -1579,7 +1579,7 @@ btrace_add_pc (struct thread_info *tp) pc = regcache_read_pc (regcache); btrace.format = BTRACE_FORMAT_BTS; - btrace.variant.bts.blocks = new std::vector ; + btrace.variant.bts.blocks = new std::vector; btrace.variant.bts.blocks->emplace_back (pc, pc); @@ -1592,7 +1592,8 @@ void btrace_enable (struct thread_info *tp, const struct btrace_config *conf) { if (tp->btrace.target != NULL) - return; + error (_("Recording already enabled on thread %s (%s)."), + print_thread_id (tp), target_pid_to_str (tp->ptid).c_str ()); #if !defined (HAVE_LIBIPT) if (conf->format == BTRACE_FORMAT_PT) @@ -1604,9 +1605,9 @@ btrace_enable (struct thread_info *tp, const struct btrace_config *conf) tp->btrace.target = target_enable_btrace (tp->ptid, conf); - /* We're done if we failed to enable tracing. */ if (tp->btrace.target == NULL) - return; + error (_("Failed to enable recording on thread %s (%s)."), + print_thread_id (tp), target_pid_to_str (tp->ptid).c_str ()); /* We need to undo the enable in case of errors. */ try @@ -1651,7 +1652,8 @@ btrace_disable (struct thread_info *tp) struct btrace_thread_info *btp = &tp->btrace; if (btp->target == NULL) - return; + error (_("Recording not enabled on thread %s (%s)."), + print_thread_id (tp), target_pid_to_str (tp->ptid).c_str ()); DEBUG ("disable thread %s (%s)", print_thread_id (tp), target_pid_to_str (tp->ptid).c_str ()); @@ -1791,7 +1793,7 @@ btrace_stitch_trace (struct btrace_data *btrace, struct thread_info *tp) return -1; } - internal_error (__FILE__, __LINE__, _("Unkown branch trace format.")); + internal_error (__FILE__, __LINE__, _("Unknown branch trace format.")); } /* Clear the branch trace histories in BTINFO. */ @@ -2036,7 +2038,7 @@ parse_xml_btrace_block (struct gdb_xml_parser *parser, case BTRACE_FORMAT_NONE: btrace->format = BTRACE_FORMAT_BTS; - btrace->variant.bts.blocks = new std::vector ; + btrace->variant.bts.blocks = new std::vector; break; default: @@ -2963,7 +2965,7 @@ btrace_maint_decode_pt (struct btrace_maint_info *maint, int errcode; if (maint->variant.pt.packets == NULL) - maint->variant.pt.packets = new std::vector ; + maint->variant.pt.packets = new std::vector; for (;;) { @@ -3095,7 +3097,7 @@ btrace_maint_update_packets (struct btrace_thread_info *btinfo, #if defined (HAVE_LIBIPT) case BTRACE_FORMAT_PT: if (btinfo->maint.variant.pt.packets == nullptr) - btinfo->maint.variant.pt.packets = new std::vector ; + btinfo->maint.variant.pt.packets = new std::vector; if (btinfo->maint.variant.pt.packets->empty ()) btrace_maint_update_pt_packets (btinfo); @@ -3123,7 +3125,7 @@ btrace_maint_print_packets (struct btrace_thread_info *btinfo, case BTRACE_FORMAT_BTS: { - const std::vector &blocks + const std::vector &blocks = *btinfo->data.variant.bts.blocks; unsigned int blk; @@ -3144,7 +3146,7 @@ btrace_maint_print_packets (struct btrace_thread_info *btinfo, #if defined (HAVE_LIBIPT) case BTRACE_FORMAT_PT: { - const std::vector &packets + const std::vector &packets = *btinfo->maint.variant.pt.packets; unsigned int pkt; @@ -3228,7 +3230,7 @@ maint_btrace_packet_history_cmd (const char *arg, int from_tty) struct btrace_thread_info *btinfo; unsigned int size, begin, end, from, to; - thread_info *tp = find_thread_ptid (inferior_ptid); + thread_info *tp = find_thread_ptid (current_inferior (), inferior_ptid); if (tp == NULL) error (_("No thread.")); @@ -3358,51 +3360,6 @@ maint_btrace_clear_cmd (const char *args, int from_tty) btrace_clear (tp); } -/* The "maintenance btrace" command. */ - -static void -maint_btrace_cmd (const char *args, int from_tty) -{ - help_list (maint_btrace_cmdlist, "maintenance btrace ", all_commands, - gdb_stdout); -} - -/* The "maintenance set btrace" command. */ - -static void -maint_btrace_set_cmd (const char *args, int from_tty) -{ - help_list (maint_btrace_set_cmdlist, "maintenance set btrace ", all_commands, - gdb_stdout); -} - -/* The "maintenance show btrace" command. */ - -static void -maint_btrace_show_cmd (const char *args, int from_tty) -{ - help_list (maint_btrace_show_cmdlist, "maintenance show btrace ", - all_commands, gdb_stdout); -} - -/* The "maintenance set btrace pt" command. */ - -static void -maint_btrace_pt_set_cmd (const char *args, int from_tty) -{ - help_list (maint_btrace_pt_set_cmdlist, "maintenance set btrace pt ", - all_commands, gdb_stdout); -} - -/* The "maintenance show btrace pt" command. */ - -static void -maint_btrace_pt_show_cmd (const char *args, int from_tty) -{ - help_list (maint_btrace_pt_show_cmdlist, "maintenance show btrace pt ", - all_commands, gdb_stdout); -} - /* The "maintenance info btrace" command. */ static void @@ -3471,36 +3428,39 @@ show_maint_btrace_pt_skip_pad (struct ui_file *file, int from_tty, /* Initialize btrace maintenance commands. */ +void _initialize_btrace (); void -_initialize_btrace (void) +_initialize_btrace () { add_cmd ("btrace", class_maintenance, maint_info_btrace_cmd, _("Info about branch tracing data."), &maintenanceinfolist); - add_prefix_cmd ("btrace", class_maintenance, maint_btrace_cmd, - _("Branch tracing maintenance commands."), - &maint_btrace_cmdlist, "maintenance btrace ", - 0, &maintenancelist); + add_basic_prefix_cmd ("btrace", class_maintenance, + _("Branch tracing maintenance commands."), + &maint_btrace_cmdlist, "maintenance btrace ", + 0, &maintenancelist); - add_prefix_cmd ("btrace", class_maintenance, maint_btrace_set_cmd, _("\ + add_basic_prefix_cmd ("btrace", class_maintenance, _("\ Set branch tracing specific variables."), - &maint_btrace_set_cmdlist, "maintenance set btrace ", - 0, &maintenance_set_cmdlist); + &maint_btrace_set_cmdlist, "maintenance set btrace ", + 0, &maintenance_set_cmdlist); - add_prefix_cmd ("pt", class_maintenance, maint_btrace_pt_set_cmd, _("\ + add_basic_prefix_cmd ("pt", class_maintenance, _("\ Set Intel Processor Trace specific variables."), - &maint_btrace_pt_set_cmdlist, "maintenance set btrace pt ", - 0, &maint_btrace_set_cmdlist); + &maint_btrace_pt_set_cmdlist, + "maintenance set btrace pt ", + 0, &maint_btrace_set_cmdlist); - add_prefix_cmd ("btrace", class_maintenance, maint_btrace_show_cmd, _("\ + add_show_prefix_cmd ("btrace", class_maintenance, _("\ Show branch tracing specific variables."), - &maint_btrace_show_cmdlist, "maintenance show btrace ", - 0, &maintenance_show_cmdlist); + &maint_btrace_show_cmdlist, "maintenance show btrace ", + 0, &maintenance_show_cmdlist); - add_prefix_cmd ("pt", class_maintenance, maint_btrace_pt_show_cmd, _("\ + add_show_prefix_cmd ("pt", class_maintenance, _("\ Show Intel Processor Trace specific variables."), - &maint_btrace_pt_show_cmdlist, "maintenance show btrace pt ", - 0, &maint_btrace_show_cmdlist); + &maint_btrace_pt_show_cmdlist, + "maintenance show btrace pt ", + 0, &maint_btrace_show_cmdlist); add_setshow_boolean_cmd ("skip-pad", class_maintenance, &maint_btrace_pt_skip_pad, _("\