From: Andrew Burgess <andrew.burgess@embecosm.com>
To: Pedro Alves <palves@redhat.com>
Cc: Craig Blackmore <craig.blackmore@embecosm.com>,
gdb-patches@sourceware.org
Subject: Re: [PATCH] RISC-V: enable have_nonsteppable_watchpoint by default
Date: Mon, 17 Sep 2018 13:34:00 -0000 [thread overview]
Message-ID: <20180917133425.GL5952@embecosm.com> (raw)
In-Reply-To: <539c4dcf-8bfa-b567-5112-42eac55645c8@redhat.com>
* Pedro Alves <palves@redhat.com> [2018-09-17 13:54:38 +0100]:
> On 09/16/2018 01:13 AM, Craig Blackmore wrote:
> > The RISC-V debug spec 0.13 recommends that write triggers fire before
> > the write is committed. If the target follows this behaviour, then
> > have_nonsteppable_watchpoint needs to be set to 1 so that GDB will step
> > over the watchpoint before checking if the value has changed.
> >
> > This patch adds a setshow for have_nonsteppable_watchpoint which defaults
> > to 1 to match the recommended behaviour. If a target does not follow
> > this timing, then 'set riscv have_nonsteppable_watchpoint 0' will need
> > to be issued on the command line.
> >
> > gdb/ChangeLog:
> >
> > * riscv-tdep.c (set_have_nonsteppable_watchpoint): add
> > callback for 'set riscv have_nonsteppable_watchpoint'
> > (riscv_gdbarch_init): initialise gdbarch setting for
> > have_nonesteppable_watchpoint
>
> This is something the target/stub knows, right? I'd be much
> better to make this automatic, so that users wouldn't have to
> know to tweak anything.
Sure, you're thinking something like (to pick one at random) how the
'org.gnu.gdb.arm.neon' feature on ARM in the target description tells
GDB how to operate, right? I totally agree.
... but.... we'd still probably want to keep the flag around (though
as an auto/on/off maybe) so the user could, if they wanted, override a
badly behaving target...
....and.... there's no current remote description support for RiscV at
all, so having implement that as a prerequisite seems a little steep
(to me).
My preference would be to allow this in basically as is, then make it
automatic once we have target description support in place.
Alternatively we could remove the control switch for now, and just go
with:
set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1);
for everyone. But if there's anyone out there not following the
recommendation that makes things a little harder for them in the short
term.
What do you think?
Thanks,
Andrew
>
> Thanks,
> Pedro Alves
next prev parent reply other threads:[~2018-09-17 13:34 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-16 0:13 Craig Blackmore
2018-09-17 10:34 ` Andrew Burgess
2018-09-24 11:36 ` Craig Blackmore
2018-10-03 22:37 ` Joel Brobecker
2018-10-04 16:26 ` Craig Blackmore
2018-10-08 9:58 ` Andrew Burgess
2018-10-08 11:56 ` Pedro Alves
2018-10-08 14:25 ` Joel Brobecker
2018-10-08 14:37 ` Paul Koning
2018-10-08 14:42 ` Pedro Alves
2018-10-08 14:51 ` Joel Brobecker
2018-10-09 17:20 ` Craig Blackmore
2018-10-09 17:29 ` Paul Koning
2018-10-09 17:39 ` Pedro Alves
2018-10-23 10:34 ` Andrew Burgess
2018-10-08 14:50 ` Andreas Schwab
2018-09-17 12:54 ` Pedro Alves
2018-09-17 13:34 ` Andrew Burgess [this message]
2018-10-08 11:29 ` Pedro Alves
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=20180917133425.GL5952@embecosm.com \
--to=andrew.burgess@embecosm.com \
--cc=craig.blackmore@embecosm.com \
--cc=gdb-patches@sourceware.org \
--cc=palves@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