This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [PATCH] Add method/format information to =record-started


> -----Original Message-----
> From: Simon Marchi [mailto:simon.marchi@ericsson.com]
> Sent: Monday, June 6, 2016 3:07 PM
> To: Metzger, Markus T <markus.t.metzger@intel.com>; gdb-
> patches@sourceware.org
> Subject: Re: [PATCH] Add method/format information to =record-started

Hi Simon,

Please see Yao's reply regarding formatting.

> >> @@ -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);

Looks good except that BTRACE_FORMAT_NONE is not handled in the switch.

We could leave it as a bad format string to be detected by the MI consumer.  This would
leave the short and long versions of btrace_format_string symmetric.

Regards,
Markus.

Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]