-/* This file inplements the host independent child process statum.
-
+/* Target-vector operations for controlling Unix child processes, for GDB.
Copyright 1990, 1991, 1992 Free Software Foundation, Inc.
Contributed by Cygnus Support.
static void
child_mourn_inferior PARAMS ((void));
+static int
+child_can_run PARAMS ((void));
+
extern char **environ;
/* Forward declaration */
}
-/* Attach to process PID, then initialize for debugging it
- and wait for the trace-trap that results from attaching. */
+/* Attach to process PID, then initialize for debugging it. */
static void
child_attach (args, from_tty)
char *exec_file;
int pid;
- dont_repeat();
-
if (!args)
error_no_arg ("process-id to attach");
if (pid == getpid()) /* Trying to masturbate? */
error ("I refuse to debug myself!");
- if (target_has_execution)
- {
- if (query ("A program is being debugged already. Kill it? "))
- target_kill ();
- else
- error ("Inferior not killed.");
- }
-
if (from_tty)
{
exec_file = (char *) get_exec_file (0);
attach (pid);
inferior_pid = pid;
push_target (&child_ops);
-
- mark_breakpoints_out ();
- target_terminal_init ();
- clear_proceed_status ();
- stop_soon_quietly = 1;
- /*proceed (-1, 0, -2);*/
- target_terminal_inferior ();
- wait_for_inferior ();
-#ifdef SOLIB_ADD
- SOLIB_ADD ((char *)0, from_tty, (struct target_ops *)0);
-#endif
- normal_stop ();
#endif /* ATTACH_DETACH */
}
-/*
- * child_detach()
- * takes a program previously attached to and detaches it.
- * The program resumes execution and will no longer stop
- * on signals, etc. We better not have left any breakpoints
- * in the program or it'll die when it hits one. For this
- * to work, it may be necessary for the process to have been
- * previously attached. It *might* work if the program was
- * started via the normal ptrace (PTRACE_TRACEME).
- */
+
+/* Take a program previously attached to and detaches it.
+ The program resumes execution and will no longer stop
+ on signals, etc. We'd better not have left any breakpoints
+ in the program or it'll die when it hits one. For this
+ to work, it may be necessary for the process to have been
+ previously attached. It *might* work if the program was
+ started via the normal ptrace (PTRACE_TRACEME). */
static void
child_detach (args, from_tty)
{
return(1);
}
-
+\f
struct target_ops child_ops = {
"child", /* to_shortname */
"Unix child process", /* to_longname */