Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Vladimir Prus <ghost@cs.msu.su>
To: gdb@sources.redhat.com
Subject: Re: Write watchpoints
Date: Thu, 06 Mar 2008 09:24:00 -0000	[thread overview]
Message-ID: <fqo8b8$4kd$1@ger.gmane.org> (raw)
In-Reply-To: <15867705.post@talk.nabble.com>

Guillaume MENANT wrote:

> 
> Hello,
> 
> I'm currently working with a modified version of GDB (sparc-elf-gdb
> delivered by Gaisler). I'm creating a software which makes the link between
> this GDB and an Sparc evaluation board. I'm also working with Eclipse (my
> toolchain is : Eclipse <-> sparc-elf-gdb <-> My software <-> Evaluation
> board.
> 
> I'm trying to implement watchpoints management in my software but it doesn't
> works. For a write watchpoint at 0x800000A4,  GDB sets it (Z2) and then the
> watchpoint triggers on my board (just before executing the asm instruction
> which modifies the 0x800000A4 address), so I send back the answer
> T05watch800000A4 to GDB before effectively writing to the 0x800000A4
> address. 
[...]
> Then the watchpoint
> triggers again immediately  because the instruction modifying the 0x800000A4
> address has not been executed before.

So, 
1. Does the board stop at the instruction that accessed the memory, or at
the next instruction?
2. What does "effectively writing to the 0x800000A4 address" mean? It sounds like
both the write to memory happens, and that instruction is not executed, which
I cannot understand.

If your target actually stops at the instruction accessing memory,
before the write happens, then you need to tell GDB to step over
the instruction. There are two mechanisms in current GDB, as far as I can tell:

1. HAVE_STEPPABLE_WATCHPOINT tells that you can just single-step over the
watchpoint, while it's set, and it won't fire during single-stepping.
The macro basically looks at to_have_steppable_watchpoint field in target.
2. gdbarch_have_nonsteppable_watchpoint tells that we have to single-step
over watchpoint, while it's disabled. 

It appears that you need to arrange for exactly one of those to return true.

- Volodya





  reply	other threads:[~2008-03-06  8:01 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-06  7:09 Guillaume MENANT
2008-03-06  9:24 ` Vladimir Prus [this message]
2008-03-06 16:19   ` Daniel Jacobowitz
2008-03-06 16:45     ` Vladimir Prus
2008-03-06 16:52       ` Daniel Jacobowitz
2008-03-06 20:24 ` Jie Zhang

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='fqo8b8$4kd$1@ger.gmane.org' \
    --to=ghost@cs.msu.su \
    --cc=gdb@sources.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