From patchwork Mon Jun 6 13:06:57 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 12788 Received: (qmail 21465 invoked by alias); 6 Jun 2016 13:07:03 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 21444 invoked by uid 89); 6 Jun 2016 13:07:02 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: usplmg20.ericsson.net Received: from usplmg20.ericsson.net (HELO usplmg20.ericsson.net) (198.24.6.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Mon, 06 Jun 2016 13:07:01 +0000 Received: from EUSAAHC003.ericsson.se (Unknown_Domain [147.117.188.81]) by usplmg20.ericsson.net (Symantec Mail Security) with SMTP id E1.B2.09012.84C65575; Mon, 6 Jun 2016 14:27:52 +0200 (CEST) Received: from [142.133.110.144] (147.117.188.8) by smtp-am.internal.ericsson.com (147.117.188.83) with Microsoft SMTP Server id 14.3.294.0; Mon, 6 Jun 2016 09:06:58 -0400 Subject: Re: [PATCH] Add method/format information to =record-started To: "Metzger, Markus T" , "gdb-patches@sourceware.org" References: <20160603155220.22286-1-simon.marchi@ericsson.com> From: Simon Marchi Message-ID: <57557571.7040200@ericsson.com> Date: Mon, 6 Jun 2016 09:06:57 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: X-IsSubscribed: yes On 16-06-06 02:37 AM, Metzger, Markus T wrote: >> @@ -407,8 +409,30 @@ mi_record_changed (struct inferior *inferior, int started) >> old_chain = make_cleanup_restore_target_terminal (); >> target_terminal_ours_for_output (); >> >> - fprintf_unfiltered (mi->event_channel, "record-%s,thread-group=\"i%d\"", >> - started ? "started" : "stopped", inferior->num); >> + if (started) >> + { >> + if (format != NULL) >> + { > > Do we really need braces, here... Right, thanks. >> + fprintf_unfiltered ( >> + mi->event_channel, >> + "record-started,thread- >> group=\"i%d\",method=\"%s\",format=\"%s\"", >> + inferior->num, method, format); >> + } >> + else >> + { >> + > > ...and here... Same. >> + fprintf_unfiltered ( >> + mi->event_channel, >> + "record-started,thread-group=\"i%d\",method=\"%s\"", >> + inferior->num, method); >> + } >> + } >> + else >> + { > > ...and here? Ditto. >> + fprintf_unfiltered (mi->event_channel, >> + "record-stopped,thread-group=\"i%d\"", inferior- >>> num); >> + } >> + > > >> @@ -234,7 +235,8 @@ record_btrace_open (const char *args, int from_tty) >> NULL); >> record_btrace_generating_corefile = 0; >> >> - observer_notify_record_changed (current_inferior (), 1); >> + format = record_btrace_conf.format == BTRACE_FORMAT_PT ? "pt" : "bts"; > > I'd use a switch here and not assume that format != pt means bts. If we added > another format (LBR maybe?) we might miss this. You're right. What do you think of adding a convenience function like this? diff --git a/gdb/common/btrace-common.c b/gdb/common/btrace-common.c index eba3979..ebf3ed2 100644 --- a/gdb/common/btrace-common.c +++ b/gdb/common/btrace-common.c @@ -43,6 +43,23 @@ btrace_format_string (enum btrace_format format) /* See btrace-common.h. */ +const char * +btrace_format_short_string (enum btrace_format format) +{ + switch (format) + { + case BTRACE_FORMAT_BTS: + return "bts"; + + case BTRACE_FORMAT_PT: + return "pt"; + } + + internal_error (__FILE__, __LINE__, _("Unknown branch trace format")); +} + +/* See btrace-common.h. */ + void btrace_data_init (struct btrace_data *data) { diff --git a/gdb/common/btrace-common.h b/gdb/common/btrace-common.h index ad208cd..ba707a2 100644 --- a/gdb/common/btrace-common.h +++ b/gdb/common/btrace-common.h @@ -214,6 +214,10 @@ enum btrace_error /* Return a string representation of FORMAT. */ extern const char *btrace_format_string (enum btrace_format format); +/* Return a short abbreviation string of FORMAT. FORMAT can have the value + BTRACE_FORMAT_NONE. */ +extern const char *btrace_format_short_string (enum btrace_format format); + /* Initialize DATA. */ extern void btrace_data_init (struct btrace_data *data); diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c index a1df75a..24594a9 100644 --- a/gdb/record-btrace.c +++ b/gdb/record-btrace.c @@ -235,7 +235,7 @@ record_btrace_open (const char *args, int from_tty) NULL); record_btrace_generating_corefile = 0; - format = record_btrace_conf.format == BTRACE_FORMAT_PT ? "pt" : "bts"; + format = btrace_format_short_string (record_btrace_conf.format); observer_notify_record_changed (current_inferior (), 1, "btrace", format); discard_cleanups (disable_chain);