Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: "Marcin Kościelnicki" <koriakin@0x04.net>, gdb-patches@sourceware.org
Subject: Re: [PATCH 2/4] gdb.trace: Read XML target description from tfile.
Date: Wed, 10 Feb 2016 13:02:00 -0000	[thread overview]
Message-ID: <56BB34FE.8040108@redhat.com> (raw)
In-Reply-To: <1454773157-31569-3-git-send-email-koriakin@0x04.net>

On 02/06/2016 03:39 PM, Marcin Kościelnicki wrote:

>  
> +static void tfile_append_tdesc_line (const char *line);
>  static void tfile_interp_line (char *line,
>  			       struct uploaded_tp **utpp,
>  			       struct uploaded_tsv **utsvp);
> @@ -457,6 +462,12 @@ tfile_open (const char *arg, int from_tty)
>    trace_filename = xstrdup (filename);
>    trace_fd = scratch_chan;
>  
> +  /* Make sure this is clear.  */
> +  xfree (trace_tdesc);
> +  trace_tdesc = NULL;
> +  trace_tdesc_alloc = 0;
> +  trace_tdesc_len = 0;
> +
>    bytes = 0;
>    /* Read the file header and test for validity.  */
>    tfile_read ((gdb_byte *) &header, TRACE_HEADER_SIZE);
> @@ -505,6 +516,9 @@ tfile_open (const char *arg, int from_tty)
>  	    error (_("Excessively long lines in trace file"));
>  	}
>  
> +      /* We should have fetched tdesc by now.  */
> +      target_find_description ();

The comment makes it sounds like the call isn't needed.  ITYM
that the loop above should have read in the tdesc, if there was one,
right?  Could you reword the comment, please?

>  
>  static enum target_xfer_status
> +tfile_xfer_partial_features (struct target_ops *ops, const char *annex,
> +			     gdb_byte *readbuf, const gdb_byte *writebuf,
> +			     ULONGEST offset, ULONGEST len,
> +			     ULONGEST *xfered_len)
> +{
> +  if (strcmp (annex, "target.xml"))
> +    return TARGET_XFER_E_IO;
> +
> +  if (readbuf == NULL)
> +    error (_("tfile_xfer_partial: tdesc is read-only"));
> +
> +  if (!trace_tdesc)
> +    return TARGET_XFER_E_IO;

  if (trace_tdesc == NULL)
    return TARGET_XFER_E_IO;

>  
> +/* Handles tdesc lines from tfile by appending the payload to
> +   a global trace_tdesc variable.  */
> +
> +static void
> +tfile_append_tdesc_line (const char *line)
> +{
> +  int llen = strlen (line);
> +
> +  /* 2 chars for "\n\0".  */
> +  while (trace_tdesc_len + llen + 2 > trace_tdesc_alloc)
> +    {
> +      /* Grow the buffer.  */
> +      if (!trace_tdesc_alloc)
> +	trace_tdesc_alloc = 4096;
> +      else
> +	trace_tdesc_alloc *= 2;
> +      trace_tdesc = xrealloc(trace_tdesc, trace_tdesc_alloc);
> +    }
> +
> +  strcpy (trace_tdesc + trace_tdesc_len, line);
> +  trace_tdesc_len += llen;
> +  strcpy (trace_tdesc + trace_tdesc_len, "\n");
> +  trace_tdesc_len++;
> +}

Please use "struct buffer" instead of the manual xreallocing.

See similar examples here:
https://sourceware.org/ml/gdb-patches/2016-02/msg00070.html

Thanks,
Pedro Alves


  reply	other threads:[~2016-02-10 13:02 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-06 15:39 [PATCH 0/4] Save target description in tfile Marcin Kościelnicki
2016-02-06 15:39 ` [PATCH 1/4] gdb.trace: Save XML " Marcin Kościelnicki
2016-02-10 13:02   ` Pedro Alves
2016-02-10 20:18     ` [PATCH 1/3] " Marcin Kościelnicki
2016-02-10 22:20       ` Pedro Alves
2016-02-10 22:35         ` Marcin Kościelnicki
2016-02-11 19:02           ` Simon Marchi
2016-02-11 21:28             ` Sergio Durigan Junior
2016-02-11 22:31             ` Marcin Kościelnicki
2016-02-11 22:56             ` [PATCH] gdb: Fix build failure in xml-tdesc.c without expat Marcin Kościelnicki
2016-02-12 10:06               ` Pedro Alves
2016-02-12 10:10                 ` Marcin Kościelnicki
2016-02-12 10:19                   ` Pedro Alves
2016-02-12 10:21                     ` Marcin Kościelnicki
2016-02-06 15:39 ` [PATCH 2/4] gdb.trace: Read XML target description from tfile Marcin Kościelnicki
2016-02-10 13:02   ` Pedro Alves [this message]
2016-02-10 20:19     ` [PATCH 2/3] " Marcin Kościelnicki
2016-02-10 22:20       ` Pedro Alves
2016-02-10 22:35         ` Marcin Kościelnicki
2016-02-06 15:39 ` [PATCH 3/4] gdb.trace: Use g packet order in tfile_fetch_registers Marcin Kościelnicki
2016-02-10 13:20   ` Pedro Alves
2016-02-10 13:21     ` Marcin Kościelnicki
2016-02-10 13:54       ` Pedro Alves
2016-02-10 14:12         ` [PATCH] " Marcin Kościelnicki
2016-02-10 14:21           ` Pedro Alves
2016-02-10 14:49             ` Marcin Kościelnicki
2016-02-06 15:47 ` [PATCH 4/4] gdb.trace: Fix off-by-one " Marcin Kościelnicki
2016-02-10 13:22   ` Pedro Alves
2016-02-10 13:53     ` Marcin Kościelnicki
2016-02-06 20:54 ` [PATCH 5/6] gdb/x86: Implement ax_pseudo_register_collect hook Marcin Kościelnicki
2016-02-06 20:54   ` [PATCH 6/6] gdb.trace: Add a testcase for tdesc in tfile Marcin Kościelnicki
2016-02-10 13:50     ` Pedro Alves
2016-02-11 10:14       ` [PATCH] " Marcin Kościelnicki
2016-02-11 13:00         ` Pedro Alves
2016-02-11 14:17           ` Marcin Kościelnicki
2016-02-12 18:32             ` Antoine Tremblay
2016-02-12 18:40               ` Marcin Kościelnicki
2016-02-12 18:49                 ` Antoine Tremblay
2016-02-12 18:53                   ` Marcin Kościelnicki
2016-02-12 18:57                     ` Antoine Tremblay
2016-02-12 19:47                       ` [PATCH] gdb.trace/tfile-avx.c: Change ymm15 to xmm15 for old gcc Marcin Kościelnicki
2016-02-12 19:57                         ` Pedro Alves
2016-02-12 21:34                           ` Marcin Kościelnicki
2016-02-10 13:31   ` [PATCH 5/6] gdb/x86: Implement ax_pseudo_register_collect hook Pedro Alves
2016-02-10 13:34     ` Marcin Kościelnicki
2016-02-10 13:50       ` Pedro Alves
2016-02-10 14:27         ` [PATCH] " Marcin Kościelnicki
2016-02-10 14:28           ` Pedro Alves
2016-02-10 14:49             ` Marcin Kościelnicki
2016-02-10 14:24 ` [PATCH 0/4] Save target description in tfile Pedro Alves
2016-02-10 14:25   ` Marcin Kościelnicki
2016-02-10 20:19   ` [PATCH 3/3] gdb/doc: Add documentation for tfile description section lines Marcin Kościelnicki
2016-02-10 22:20     ` Pedro Alves
2016-02-17  9:50       ` Marcin Kościelnicki
2016-02-17 15:37         ` Pedro Alves
2016-02-17 15:38           ` Pedro Alves
2016-02-17 15:59         ` Eli Zaretskii
2016-02-17 16:04           ` Marcin Kościelnicki
2016-02-17 16:05             ` Pedro Alves
2016-02-18  8:28               ` Marcin Kościelnicki
2016-02-11 17:36 ` [PATCH 0/4] Save target description in tfile Yao Qi
2016-02-12  1:49   ` Marcin Kościelnicki
2016-02-12 12:13     ` Yao Qi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56BB34FE.8040108@redhat.com \
    --to=palves@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=koriakin@0x04.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox