convert to_mourn_inferior

2014-02-19  Tom Tromey  <tromey@redhat.com>

	* target-delegates.c: Rebuild.
	* target.c (default_mourn_inferior): New function.
	(target_mourn_inferior): Unconditionally delegate.
	* target.h (struct target_ops) <to_mourn_inferior>: Use
	TARGET_DEFAULT_FUNC.
This commit is contained in:
Tom Tromey 2013-12-18 14:40:23 -07:00
parent 098dba18ee
commit 8d65703517
4 changed files with 36 additions and 21 deletions

View File

@ -1,3 +1,11 @@
2014-02-19 Tom Tromey <tromey@redhat.com>
* target-delegates.c: Rebuild.
* target.c (default_mourn_inferior): New function.
(target_mourn_inferior): Unconditionally delegate.
* target.h (struct target_ops) <to_mourn_inferior>: Use
TARGET_DEFAULT_FUNC.
2014-02-19 Tom Tromey <tromey@redhat.com>
* target-delegates.c: Rebuild.

View File

@ -510,6 +510,13 @@ tdefault_has_exited (struct target_ops *self, int arg1, int arg2, int *arg3)
return 0;
}
static void
delegate_mourn_inferior (struct target_ops *self)
{
self = self->beneath;
self->to_mourn_inferior (self);
}
static char *
delegate_extra_thread_info (struct target_ops *self, struct thread_info *arg1)
{
@ -1247,6 +1254,8 @@ install_delegators (struct target_ops *ops)
ops->to_set_syscall_catchpoint = delegate_set_syscall_catchpoint;
if (ops->to_has_exited == NULL)
ops->to_has_exited = delegate_has_exited;
if (ops->to_mourn_inferior == NULL)
ops->to_mourn_inferior = delegate_mourn_inferior;
if (ops->to_extra_thread_info == NULL)
ops->to_extra_thread_info = delegate_extra_thread_info;
if (ops->to_thread_name == NULL)
@ -1403,6 +1412,7 @@ install_dummy_methods (struct target_ops *ops)
ops->to_remove_exec_catchpoint = tdefault_remove_exec_catchpoint;
ops->to_set_syscall_catchpoint = tdefault_set_syscall_catchpoint;
ops->to_has_exited = tdefault_has_exited;
ops->to_mourn_inferior = default_mourn_inferior;
ops->to_extra_thread_info = tdefault_extra_thread_info;
ops->to_thread_name = tdefault_thread_name;
ops->to_stop = tdefault_stop;

View File

@ -63,6 +63,8 @@ static ptid_t default_get_ada_task_ptid (struct target_ops *self,
static int default_follow_fork (struct target_ops *self, int follow_child,
int detach_fork);
static void default_mourn_inferior (struct target_ops *self);
static void tcomplain (void) ATTRIBUTE_NORETURN;
static int nomemory (CORE_ADDR, char *, int, int, struct target_ops *);
@ -2660,30 +2662,24 @@ target_follow_fork (int follow_child, int detach_fork)
return retval;
}
static void
default_mourn_inferior (struct target_ops *self)
{
internal_error (__FILE__, __LINE__,
_("could not find a target to follow mourn inferior"));
}
void
target_mourn_inferior (void)
{
struct target_ops *t;
current_target.to_mourn_inferior (&current_target);
if (targetdebug)
fprintf_unfiltered (gdb_stdlog, "target_mourn_inferior ()\n");
for (t = current_target.beneath; t != NULL; t = t->beneath)
{
if (t->to_mourn_inferior != NULL)
{
t->to_mourn_inferior (t);
if (targetdebug)
fprintf_unfiltered (gdb_stdlog, "target_mourn_inferior ()\n");
/* We no longer need to keep handles on any of the object files.
Make sure to release them to avoid unnecessarily locking any
of them while we're not actually debugging. */
bfd_cache_close_all ();
return;
}
}
internal_error (__FILE__, __LINE__,
_("could not find a target to follow mourn inferior"));
/* We no longer need to keep handles on any of the object files.
Make sure to release them to avoid unnecessarily locking any
of them while we're not actually debugging. */
bfd_cache_close_all ();
}
/* Look for a target which can describe architectural features, starting

View File

@ -544,7 +544,8 @@ struct target_ops
TARGET_DEFAULT_RETURN (1);
int (*to_has_exited) (struct target_ops *, int, int, int *)
TARGET_DEFAULT_RETURN (0);
void (*to_mourn_inferior) (struct target_ops *);
void (*to_mourn_inferior) (struct target_ops *)
TARGET_DEFAULT_FUNC (default_mourn_inferior);
int (*to_can_run) (struct target_ops *);
/* Documentation of this routine is provided with the corresponding