diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/target-delegates.c | 16 | ||||
-rw-r--r-- | gdb/target.c | 27 | ||||
-rw-r--r-- | gdb/target.h | 3 |
4 files changed, 34 insertions, 19 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7c489a9..adcdf65 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,6 +1,13 @@ 2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. + * target.c (target_verify_memory): Unconditionally delegate. + * target.h (struct target_ops) <to_verify_memory>: Use + TARGET_DEFAULT_NORETURN. + +2014-02-19 Tom Tromey <tromey@redhat.com> + + * target-delegates.c: Rebuild. * target.c (target_core_of_thread): Unconditionally delegate. * target.h (struct target_ops) <to_core_of_thread>: Use TARGET_DEFAULT_RETURN. diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c index 2c7ab7f..20ebda8 100644 --- a/gdb/target-delegates.c +++ b/gdb/target-delegates.c @@ -1145,6 +1145,19 @@ tdefault_core_of_thread (struct target_ops *self, ptid_t arg1) } static int +delegate_verify_memory (struct target_ops *self, const gdb_byte *arg1, CORE_ADDR arg2, ULONGEST arg3) +{ + self = self->beneath; + return self->to_verify_memory (self, arg1, arg2, arg3); +} + +static int +tdefault_verify_memory (struct target_ops *self, const gdb_byte *arg1, CORE_ADDR arg2, ULONGEST arg3) +{ + tcomplain (); +} + +static int delegate_get_tib_address (struct target_ops *self, ptid_t arg1, CORE_ADDR *arg2) { self = self->beneath; @@ -1457,6 +1470,8 @@ install_delegators (struct target_ops *ops) ops->to_set_trace_notes = delegate_set_trace_notes; if (ops->to_core_of_thread == NULL) ops->to_core_of_thread = delegate_core_of_thread; + if (ops->to_verify_memory == NULL) + ops->to_verify_memory = delegate_verify_memory; if (ops->to_get_tib_address == NULL) ops->to_get_tib_address = delegate_get_tib_address; if (ops->to_set_permissions == NULL) @@ -1577,6 +1592,7 @@ install_dummy_methods (struct target_ops *ops) ops->to_set_trace_buffer_size = tdefault_set_trace_buffer_size; ops->to_set_trace_notes = tdefault_set_trace_notes; ops->to_core_of_thread = tdefault_core_of_thread; + ops->to_verify_memory = tdefault_verify_memory; ops->to_get_tib_address = tdefault_get_tib_address; ops->to_set_permissions = tdefault_set_permissions; ops->to_static_tracepoint_marker_at = tdefault_static_tracepoint_marker_at; diff --git a/gdb/target.c b/gdb/target.c index 5f86c4e..4468648 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -3723,25 +3723,16 @@ target_core_of_thread (ptid_t ptid) int target_verify_memory (const gdb_byte *data, CORE_ADDR memaddr, ULONGEST size) { - struct target_ops *t; - - for (t = current_target.beneath; t != NULL; t = t->beneath) - { - if (t->to_verify_memory != NULL) - { - int retval = t->to_verify_memory (t, data, memaddr, size); + int retval = current_target.to_verify_memory (¤t_target, + data, memaddr, size); - if (targetdebug) - fprintf_unfiltered (gdb_stdlog, - "target_verify_memory (%s, %s) = %d\n", - paddress (target_gdbarch (), memaddr), - pulongest (size), - retval); - return retval; - } - } - - tcomplain (); + if (targetdebug) + fprintf_unfiltered (gdb_stdlog, + "target_verify_memory (%s, %s) = %d\n", + paddress (target_gdbarch (), memaddr), + pulongest (size), + retval); + return retval; } /* The documentation for this function is in its prototype declaration in diff --git a/gdb/target.h b/gdb/target.h index 0a6c467..69f3c1f 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -941,7 +941,8 @@ struct target_ops a match, 0 if there's a mismatch, and -1 if an error is encountered while reading memory. */ int (*to_verify_memory) (struct target_ops *, const gdb_byte *data, - CORE_ADDR memaddr, ULONGEST size); + CORE_ADDR memaddr, ULONGEST size) + TARGET_DEFAULT_NORETURN (tcomplain ()); /* Return the address of the start of the Thread Information Block a Windows OS specific feature. */ |