From: Øyvind H. <go...@us...> - 2010-01-13 12:14:56
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Main OpenOCD repository". The branch, master has been updated via 3e33393078105f25ebd591b5b76c7c1501ff41d5 (commit) from 6c75f5249cf721aa8b8c2d774cdeeac6f9770e32 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3e33393078105f25ebd591b5b76c7c1501ff41d5 Author: Ãyvind Harboe <oyv...@zy...> Date: Mon Jan 11 09:22:08 2010 +0100 gdbserver: fix typo that broke read/write watchpoint It looks like a bugfix from normal breakpoints was not copied over. Do not use clever mathematics and assumptions to convert from GDB enum for break/watchpoints to OpenOCD enum. Drop connection upon unknown breakpoint type, this code path was not really considered by the previous code I think. Signed-off-by: Ãyvind Harboe <oyv...@zy...> diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index f4a99ca..8018e6f 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -1423,7 +1423,7 @@ int gdb_breakpoint_watchpoint_packet(struct connection *connection, struct targe { int type; enum breakpoint_type bp_type = BKPT_SOFT /* dummy init to avoid warning */; - enum watchpoint_rw wp_type; + enum watchpoint_rw wp_type = WPT_READ /* dummy init to avoid warning */; uint32_t address; uint32_t size; char *separator; @@ -1443,6 +1443,12 @@ int gdb_breakpoint_watchpoint_packet(struct connection *connection, struct targe wp_type = WPT_READ; else if (type == 4) /* access watchpoint */ wp_type = WPT_ACCESS; + else + { + LOG_ERROR("invalid gdb watch/breakpoint type(%d), dropping connection", type); + return ERROR_SERVER_REMOTE_CLOSED; + } + if (gdb_breakpoint_override && ((bp_type == BKPT_SOFT)||(bp_type == BKPT_HARD))) { @@ -1493,7 +1499,7 @@ int gdb_breakpoint_watchpoint_packet(struct connection *connection, struct targe { if (packet[0] == 'Z') { - if ((retval = watchpoint_add(target, address, size, type-2, 0, 0xffffffffu)) != ERROR_OK) + if ((retval = watchpoint_add(target, address, size, wp_type, 0, 0xffffffffu)) != ERROR_OK) { if ((retval = gdb_error(connection, retval)) != ERROR_OK) return retval; ----------------------------------------------------------------------- Summary of changes: src/server/gdb_server.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) hooks/post-receive -- Main OpenOCD repository |