diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 77f910edbd..e3ce6d115f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2014-02-19 Tom Tromey + + * target-delegates.c: Rebuild. + * target.c (target_program_signals): Unconditionally delegate. + * target.h (struct target_ops) : Use + TARGET_DEFAULT_IGNORE. + 2014-02-19 Tom Tromey * target-delegates.c: Rebuild. diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c index 22cb360651..d3b8da76e6 100644 --- a/gdb/target-delegates.c +++ b/gdb/target-delegates.c @@ -529,6 +529,18 @@ tdefault_pass_signals (struct target_ops *self, int arg1, unsigned char *arg2) { } +static void +delegate_program_signals (struct target_ops *self, int arg1, unsigned char *arg2) +{ + self = self->beneath; + self->to_program_signals (self, arg1, arg2); +} + +static void +tdefault_program_signals (struct target_ops *self, int arg1, unsigned char *arg2) +{ +} + static char * delegate_extra_thread_info (struct target_ops *self, struct thread_info *arg1) { @@ -1270,6 +1282,8 @@ install_delegators (struct target_ops *ops) ops->to_mourn_inferior = delegate_mourn_inferior; if (ops->to_pass_signals == NULL) ops->to_pass_signals = delegate_pass_signals; + if (ops->to_program_signals == NULL) + ops->to_program_signals = delegate_program_signals; if (ops->to_extra_thread_info == NULL) ops->to_extra_thread_info = delegate_extra_thread_info; if (ops->to_thread_name == NULL) @@ -1428,6 +1442,7 @@ install_dummy_methods (struct target_ops *ops) ops->to_has_exited = tdefault_has_exited; ops->to_mourn_inferior = default_mourn_inferior; ops->to_pass_signals = tdefault_pass_signals; + ops->to_program_signals = tdefault_program_signals; ops->to_extra_thread_info = tdefault_extra_thread_info; ops->to_thread_name = tdefault_thread_name; ops->to_stop = tdefault_stop; diff --git a/gdb/target.c b/gdb/target.c index b04e8f2c64..0519900a35 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -2601,31 +2601,23 @@ target_pass_signals (int numsigs, unsigned char *pass_signals) void target_program_signals (int numsigs, unsigned char *program_signals) { - struct target_ops *t; - - for (t = current_target.beneath; t != NULL; t = t->beneath) + if (targetdebug) { - if (t->to_program_signals != NULL) - { - if (targetdebug) - { - int i; + int i; - fprintf_unfiltered (gdb_stdlog, "target_program_signals (%d, {", - numsigs); + fprintf_unfiltered (gdb_stdlog, "target_program_signals (%d, {", + numsigs); - for (i = 0; i < numsigs; i++) - if (program_signals[i]) - fprintf_unfiltered (gdb_stdlog, " %s", - gdb_signal_to_name (i)); + for (i = 0; i < numsigs; i++) + if (program_signals[i]) + fprintf_unfiltered (gdb_stdlog, " %s", + gdb_signal_to_name (i)); - fprintf_unfiltered (gdb_stdlog, " })\n"); - } - - (*t->to_program_signals) (t, numsigs, program_signals); - return; - } + fprintf_unfiltered (gdb_stdlog, " })\n"); } + + (*current_target.to_program_signals) (¤t_target, + numsigs, program_signals); } static int diff --git a/gdb/target.h b/gdb/target.h index 468a5cdc27..421dd75867 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -555,7 +555,8 @@ struct target_ops /* Documentation of this routine is provided with the corresponding target_* function. */ - void (*to_program_signals) (struct target_ops *, int, unsigned char *); + void (*to_program_signals) (struct target_ops *, int, unsigned char *) + TARGET_DEFAULT_IGNORE (); int (*to_thread_alive) (struct target_ops *, ptid_t ptid); void (*to_find_new_threads) (struct target_ops *);