Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: Wu Zhou <woodzltc@cn.ibm.com>
Cc: eliz@gnu.org, gdb-patches@sourceware.org
Subject: Re: Fw: [ppc-linux-nat]: set access flag for h/w watchpoint even 	if it  is  only read or write (fwd)
Date: Wed, 12 Jul 2006 17:31:00 -0000	[thread overview]
Message-ID: <20060712173125.GC24622@nevyn.them.org> (raw)
In-Reply-To: <20060711110910.6298fq7oys0gwogw@imap.linux.ibm.com>

On Tue, Jul 11, 2006 at 11:09:10AM -0400, Wu Zhou wrote:
> >I think the cleanest solution is for breakpoint.c to get the idea of
> >the kind of support it can get from the target.  If the target
> >implements real read watchpoints, it should propagate that knowledge
> >to breakpoint.c, where it examines the watchpoints and decides which
> >one to announce.
> 
> Yes. That is a good idea. Maybe a target vector can be added for that  
> purpose. Every target can set that up when it initializes. What is  
> more, the underlying os need to tell what kind of watchpoint it  
> reports, maybe in the transfered-back siginfo struct. Then gdb can use  
> that information to know if it is a read hit or write hit.
> 
> Although it is the very clean, but there is one problem in this  
> method. The underlying os need to tell what the watchpoint hit is,  
> read or write. Current ppc/ppc64 kernel don't do that. it just report  
> the a hw watchpoint is hit and report the data address to gdb through  
> siginfo struct.

There's two issues here, I think.  They solve different problems.

First, there's the question of targets which can't set true "read"
watchpoints, but can set "access" watchpoints.  Right now the x86
simply accepts a request to insert a read watchpoint, and generates an
access watchpoint instead.  How about if we changed it to refuse to
insert read watchpoints, changed breakpoint.c to attempt an access
watchpoint if inserting a read watchpoint fails, and then store in the
breakpoint which type was inserted?

In b->loc is probably a good place.  Right now there's no information
there about which kind of watchpoint was inserted.  We could add a
new field, and store hw_read/hw_access/hw_write in it when we insert
the breakpoint.

Would that fix this problem?

Second, there's the question of which sort of watchpoint we've hit. If
the target could tell us, say, as a return value from
target_stopped_data_address, then we could only check read watchpoints
when a read watchpoint triggers.  But I think this is a smaller issue;
at worst we might report that both a write and read watchpoint had
triggered when really only a write watchpoint had.  And there's corner
cases, like instructions which both read and write an address; they
should trigger both read and write watchpoints but I doubt any platform
gives us enough information to figure out that that's happened.

-- 
Daniel Jacobowitz
CodeSourcery


  reply	other threads:[~2006-07-12 17:31 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <OF40F802D1.E1DA610C-ON482571A8.004F44D3-482571A8.004F3DA7@cn.ibm.com>
2006-07-11 15:09 ` Wu Zhou
2006-07-12 17:31   ` Daniel Jacobowitz [this message]
2006-07-12 18:15     ` Eli Zaretskii
2006-07-12 18:30       ` Daniel Jacobowitz
2006-07-13  3:21         ` 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=20060712173125.GC24622@nevyn.them.org \
    --to=drow@false.org \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=woodzltc@cn.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