Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <pedro@codesourcery.com>
To: gdb-patches@sourceware.org
Cc: Thiago Jung Bauermann <bauerman@br.ibm.com>,
	Jan Kratochvil <jan.kratochvil@redhat.com>,
	Joel Brobecker <brobecker@adacore.com>,
	Eli Zaretskii <eliz@gnu.org>
Subject: Re: [patch 2/3] Implement support for PowerPC BookE ranged watchpoints
Date: Thu, 23 Dec 2010 22:18:00 -0000	[thread overview]
Message-ID: <201012232017.11120.pedro@codesourcery.com> (raw)
In-Reply-To: <1293130182.14239.21.camel@hactar>

I think this looks great.  Thanks a million for following through!

The resource accounting bits, I still say that they should all just
go away (at some point), and gdb should just try to insert the
watchpoint immediately, and see if the target refuses.  E.g., how could
one sanely implement the accounting for remote targets?  The target
is free to do all sorts of smart merging, and resource reusing, and
in fact, x86 gdbserver does so (which is why the x86 and most
other ports don't actually make use of the resource accounting
interfaces, they just always accept watchpoints).

A few directed comments only:

On Thursday 23 December 2010 18:49:42, Thiago Jung Bauermann wrote:
> +int
> +is_scalar_type_recursive (struct type *t)
> +{
> +  CHECK_TYPEDEF (t);
> +
> +  if (is_scalar_type (t))
> +    return 1;
> +  else if ((TYPE_CODE (t) == TYPE_CODE_ARRAY
> +           || TYPE_CODE (t) == TYPE_CODE_STRING) && TYPE_NFIELDS (t) == 1
> +          && TYPE_CODE (TYPE_INDEX_TYPE (t)) == TYPE_CODE_RANGE)
> +    {
> +      LONGEST low_bound, high_bound;
> +      struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (t));
> +
> +      get_discrete_bounds (TYPE_INDEX_TYPE (t), &low_bound, &high_bound);
> +
> +      return high_bound == low_bound && is_scalar_type_recursive (elt_type);
> +    }

What does the "TYPE_NFIELDS (t) == 1" do ?

I think you're missing at least pointers and references.  These should
also get the "exact" treatment, no?  Take a look at valprint.c:scalar_type_p.

Could you please add small describing comments above these new
functions?  ("return true if type T is a blah, blah".)

> +static void
> +show_powerpc_exact_watchpoints (struct ui_file *file, int from_tty,
> +                               struct cmd_list_element *c,
> +                               const char *value)
> +{
> +  fprintf_filtered (file, _("\
> +Use of just one debug register per watchpoint is %s.\n"), value);
> +}
> +

Should be "Use of exact watchpoints is ...", I think?  Thus getting rid
of the small lie that not all watchpoints (in the user perspective) will
use just one debug register, leaving the just one debug register
issue explanation to the help string (as you already have).

-- 
Pedro Alves


  parent reply	other threads:[~2010-12-23 20:17 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-23 21:52 Thiago Jung Bauermann
2010-11-23 23:17 ` Pedro Alves
2010-11-24 21:06   ` Thiago Jung Bauermann
2010-11-25 17:32     ` Pedro Alves
2010-11-26 11:09       ` Eli Zaretskii
2010-11-27 13:25         ` Thiago Jung Bauermann
2010-11-27 15:28           ` Eli Zaretskii
2010-11-26 21:15       ` Thiago Jung Bauermann
2010-11-27 17:47         ` Pedro Alves
2010-11-27 18:01           ` Pedro Alves
2010-12-09  1:44           ` Thiago Jung Bauermann
2010-12-23 19:07           ` Thiago Jung Bauermann
2010-12-23 19:13             ` Eli Zaretskii
2010-12-23 20:17               ` Thiago Jung Bauermann
2010-12-23 22:18             ` Pedro Alves [this message]
2010-12-24  5:10               ` Joel Brobecker
2010-12-25 14:13               ` Eli Zaretskii
2010-12-27 20:18                 ` Thiago Jung Bauermann
2010-12-28  2:30               ` Thiago Jung Bauermann
2010-12-28  5:47                 ` Joel Brobecker
2010-12-28 16:42                   ` Pedro Alves
2010-12-28 16:10                 ` Pedro Alves
2010-12-29  1:00                   ` Thiago Jung Bauermann
2010-11-26 10:59 ` Eli Zaretskii

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=201012232017.11120.pedro@codesourcery.com \
    --to=pedro@codesourcery.com \
    --cc=bauerman@br.ibm.com \
    --cc=brobecker@adacore.com \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=jan.kratochvil@redhat.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