From: "Ulrich Weigand" <uweigand@de.ibm.com>
To: pedromfc@linux.vnet.ibm.com (Pedro Franco de Carvalho)
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 3/4] Use get_remote_packet_size in download_tracepoint
Date: Mon, 25 Jun 2018 10:37:00 -0000 [thread overview]
Message-ID: <20180625103720.2F6DAD801CC@oc3748833570.ibm.com> (raw)
In-Reply-To: <20180620210855.6385-4-pedromfc@linux.vnet.ibm.com> from "Pedro Franco de Carvalho" at Jun 20, 2018 06:08:54 PM
Pedro Franco de Carvalho wrote:
> * remote.c (remote_target::download_tracepoint): Remove BUF_SIZE
> and pkt. Replace array buf with gdb::char_vector buf, of size
> get_remote_packet_size (). Replace references to buf and BUF_SIZE
> to buf.data () and buf.size (). Replace strcpy, strcat and
> pack_hex_byte with xsnprintf.
This makes sense in general, but I'm not sure it makes sense to use
a separate hex_byte buffer here:
> {
> agent_expr_up aexpr = gen_eval_for_expr (tpaddr, loc->cond.get ());
> - xsnprintf (buf + strlen (buf), BUF_SIZE - strlen (buf), ":X%x,",
> + xsnprintf (buf.data () + strlen (buf.data ()),
> + buf.size () - strlen (buf.data ()), ":X%x,",
> aexpr->len);
> - pkt = buf + strlen (buf);
> +
> + char *end = buf.data () + strlen (buf.data ());
> + long size_left = buf.size () - strlen (buf.data ());
> + char hex_byte[3];
> + hex_byte[2] = '\0';
> +
> for (int ndx = 0; ndx < aexpr->len; ++ndx)
> - pkt = pack_hex_byte (pkt, aexpr->buf[ndx]);
> - *pkt = '\0';
> + {
> + pack_hex_byte (hex_byte, aexpr->buf[ndx]);
> + xsnprintf (end, size_left, hex_byte);
> +
> + size_left -= strlen (end);
> + end += strlen (end);
> + }
> }
You know from the beginning that the agent expression will take
(2 * aexpr->len) bytes, so it should be OK to only check this
once, ahead of time. In fact, sending a partial agent expression
seems to be worse than sending none, so if the agent expression
is too long, I think it should be just omitted (and the user
warned).
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
Ulrich.Weigand@de.ibm.com
next prev parent reply other threads:[~2018-06-25 10:37 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-20 21:09 [PATCH 0/4] Allow larger sizes for tracepoint register masks Pedro Franco de Carvalho
2018-06-20 21:09 ` [PATCH 1/4] Fix indentation in remote_target::download_tracepoint Pedro Franco de Carvalho
2018-06-25 10:32 ` Ulrich Weigand
2018-06-20 21:09 ` [PATCH 4/4] Variable size for regs mask in collection list Pedro Franco de Carvalho
2018-06-25 10:38 ` Ulrich Weigand
2018-06-26 16:58 ` Pedro Alves
2018-06-26 18:52 ` Pedro Franco de Carvalho
2018-06-20 21:09 ` [PATCH 3/4] Use get_remote_packet_size in download_tracepoint Pedro Franco de Carvalho
2018-06-25 10:37 ` Ulrich Weigand [this message]
2018-06-25 20:51 ` Pedro Franco de Carvalho
2018-06-26 10:52 ` Ulrich Weigand
2018-06-26 16:53 ` Pedro Alves
2018-06-26 18:49 ` Pedro Franco de Carvalho
2018-06-20 21:10 ` [PATCH 2/4] Remove trailing '-' from the last QTDP action packet Pedro Franco de Carvalho
2018-06-25 10:33 ` Ulrich Weigand
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=20180625103720.2F6DAD801CC@oc3748833570.ibm.com \
--to=uweigand@de.ibm.com \
--cc=gdb-patches@sourceware.org \
--cc=pedromfc@linux.vnet.ibm.com \
/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