diff options
author | Hsiangkai Wang <hsiangkai@gmail.com> | 2012-12-26 19:11:03 +0800 |
---|---|---|
committer | Spencer Oliver <spen@spen-soft.co.uk> | 2013-08-07 21:01:08 +0000 |
commit | 80d412bafc03ce9a0418a2b98de2668b0f8de0e6 (patch) | |
tree | 60ad927b0f8c1f3099d41ace002571319d219c26 /src/target/breakpoints.h | |
parent | d979d78e97786667d168ba183c9fc60c622d29c1 (diff) | |
download | riscv-openocd-80d412bafc03ce9a0418a2b98de2668b0f8de0e6.zip riscv-openocd-80d412bafc03ce9a0418a2b98de2668b0f8de0e6.tar.gz riscv-openocd-80d412bafc03ce9a0418a2b98de2668b0f8de0e6.tar.bz2 |
gdb server: new feature, add stop reason in stop reply packet for gdb
In GDB remote serial protocol, the stop reply packet could contain more
detail stop reason. The currently defined stop reasons are listed below.
* watch
* rwatch
* awatch
* library
* replaylog
This commit adds stop reason, watch/rwatch/awatch, in stop reply packet for
just hit watchpoint. As manual indicates, at most one stop reason should be present.
The function needs target to implement new hook, hit_watchpoint. The hook will fill
the hit watchpoint in second parameter. The information will assist gdb to locate
the watchpoint. If no such information, gdb needs to scan all watchpoints by itself.
Refer to GDB Manual, D.3 Stop Reply Packets
Change-Id: I1f70a1a9cc772e88e641b6171f1a009629a43bd1
Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com>
Reviewed-on: http://openocd.zylin.com/1092
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'src/target/breakpoints.h')
-rw-r--r-- | src/target/breakpoints.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/target/breakpoints.h b/src/target/breakpoints.h index d9f4ba5..0246acd 100644 --- a/src/target/breakpoints.h +++ b/src/target/breakpoints.h @@ -72,4 +72,7 @@ int watchpoint_add(struct target *target, enum watchpoint_rw rw, uint32_t value, uint32_t mask); void watchpoint_remove(struct target *target, uint32_t address); +/* report type and address of just hit watchpoint */ +int watchpoint_hit(struct target *target, enum watchpoint_rw *rw, uint32_t *address); + #endif /* BREAKPOINTS_H */ |