return result;
}
-static int
-delegate_has_exited (struct target_ops *self, int arg1, int arg2, int *arg3)
-{
- self = self->beneath;
- return self->to_has_exited (self, arg1, arg2, arg3);
-}
-
-static int
-tdefault_has_exited (struct target_ops *self, int arg1, int arg2, int *arg3)
-{
- return 0;
-}
-
-static int
-debug_has_exited (struct target_ops *self, int arg1, int arg2, int *arg3)
-{
- int result;
- fprintf_unfiltered (gdb_stdlog, "-> %s->to_has_exited (...)\n", debug_target.to_shortname);
- result = debug_target.to_has_exited (&debug_target, arg1, arg2, arg3);
- fprintf_unfiltered (gdb_stdlog, "<- %s->to_has_exited (", debug_target.to_shortname);
- target_debug_print_struct_target_ops_p (&debug_target);
- fputs_unfiltered (", ", gdb_stdlog);
- target_debug_print_int (arg1);
- fputs_unfiltered (", ", gdb_stdlog);
- target_debug_print_int (arg2);
- fputs_unfiltered (", ", gdb_stdlog);
- target_debug_print_int_p (arg3);
- fputs_unfiltered (") = ", gdb_stdlog);
- target_debug_print_int (result);
- fputs_unfiltered ("\n", gdb_stdlog);
- return result;
-}
-
static void
delegate_mourn_inferior (struct target_ops *self)
{
ops->to_follow_exec = delegate_follow_exec;
if (ops->to_set_syscall_catchpoint == NULL)
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_can_run == NULL)
ops->to_remove_exec_catchpoint = tdefault_remove_exec_catchpoint;
ops->to_follow_exec = tdefault_follow_exec;
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_can_run = tdefault_can_run;
ops->to_pass_signals = tdefault_pass_signals;
ops->to_remove_exec_catchpoint = debug_remove_exec_catchpoint;
ops->to_follow_exec = debug_follow_exec;
ops->to_set_syscall_catchpoint = debug_set_syscall_catchpoint;
- ops->to_has_exited = debug_has_exited;
ops->to_mourn_inferior = debug_mourn_inferior;
ops->to_can_run = debug_can_run;
ops->to_pass_signals = debug_pass_signals;
int, bool, int,
gdb::array_view<const int>)
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 *)
TARGET_DEFAULT_FUNC (default_mourn_inferior);
/* Note that to_can_run is special and can be invoked on an
pid, needed, any_count, \
syscall_counts)
-/* Returns TRUE if PID has exited. And, also sets EXIT_STATUS to the
- exit code of PID, if any. */
-
-#define target_has_exited(pid,wait_status,exit_status) \
- (*current_target.to_has_exited) (¤t_target, \
- pid,wait_status,exit_status)
-
/* The debugger has completed a blocking wait() call. There is now
some process event that must be processed. This function should
be defined by those targets that require the debugger to perform