* fork-child.c (fork_inferior): Set inferior_pid before calling
init_trace_fun. Move the code which gets us through the shell to new function startup_inferior. * inferior.h: Declare startup_inferior. * procfs.c (procfs_init_inferior), inftarg.c (ptrace_him): Call startup_inferior. * m3-nat.c (m3_trace_him): Call intercept_exec_calls. * config/nm-m3.h: Don't define STARTUP_INFERIOR. * config/i386/tm-i386m3.h, config/ns32k/tm-ns32k.h, config/mips/tm-mipsm3.h: Don't define START_INFERIOR_TRAPS_EXPECTED.
This commit is contained in:
parent
73e7e44744
commit
bc28a06cc1
@ -1,5 +1,16 @@
|
||||
Wed Oct 27 13:43:07 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
|
||||
|
||||
* fork-child.c (fork_inferior): Set inferior_pid before calling
|
||||
init_trace_fun. Move the code which gets us through the shell
|
||||
to new function startup_inferior.
|
||||
* inferior.h: Declare startup_inferior.
|
||||
* procfs.c (procfs_init_inferior), inftarg.c (ptrace_him):
|
||||
Call startup_inferior.
|
||||
* m3-nat.c (m3_trace_him): Call intercept_exec_calls.
|
||||
* config/nm-m3.h: Don't define STARTUP_INFERIOR.
|
||||
* config/i386/tm-i386m3.h, config/ns32k/tm-ns32k.h,
|
||||
config/mips/tm-mipsm3.h: Don't define START_INFERIOR_TRAPS_EXPECTED.
|
||||
|
||||
* m68k-stub.c: Change vector 13 from SIGFPE to SIGBUS.
|
||||
|
||||
Tue Oct 26 22:05:03 1993 Jim Kingdon (kingdon@deneb.cygnus.com)
|
||||
|
@ -40,17 +40,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
/* we can do it */
|
||||
#define ATTACH_DETACH 1
|
||||
|
||||
/* number of traps that happen between exec'ing the shell
|
||||
* to run an inferior, and when we finally get to
|
||||
* the inferior code. This is 2 on most implementations.
|
||||
*
|
||||
* On Mach 3.0 it is the number of exec() system calls before
|
||||
* the task contains the debugged program. It is always 2 when
|
||||
* using the shell to start up the program.
|
||||
*/
|
||||
#undef START_INFERIOR_TRAPS_EXPECTED
|
||||
#define START_INFERIOR_TRAPS_EXPECTED 2
|
||||
|
||||
/* Define this if the C compiler puts an underscore at the front
|
||||
of external names before giving them to the linker. */
|
||||
|
||||
|
@ -56,14 +56,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#include "mips/tm-mips.h"
|
||||
|
||||
/*
|
||||
* On Mach 3.0 this is the number of exec() system calls before
|
||||
* the task contains the debugged program. It is always 2 when
|
||||
* using the shell to start up the program.
|
||||
*/
|
||||
#undef START_INFERIOR_TRAPS_EXPECTED
|
||||
#define START_INFERIOR_TRAPS_EXPECTED 2
|
||||
|
||||
/* Address of end of user stack space.
|
||||
* for MACH, see <machine/vmparam.h>
|
||||
*/
|
||||
|
@ -39,10 +39,6 @@ extern thread_t current_thread;
|
||||
*/
|
||||
extern int must_suspend_thread;
|
||||
|
||||
/* Startup the inferior task and suspend it after the correct code is loaded */
|
||||
|
||||
#define STARTUP_INFERIOR(x) intercept_exec_calls(x)
|
||||
|
||||
#define PREPARE_TO_PROCEED(select_it) mach3_prepare_to_proceed(select_it)
|
||||
|
||||
/* Try to get the privileged host port for authentication to machid
|
||||
|
@ -43,17 +43,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
/* we can do it */
|
||||
#define ATTACH_DETACH 1
|
||||
|
||||
/* number of traps that happen between exec'ing the shell
|
||||
* to run an inferior, and when we finally get to
|
||||
* the inferior code. This is 2 on most implementations.
|
||||
*
|
||||
* On Mach 3.0 it is the number of exec() system calls before
|
||||
* the task contains the debugged program. It is always 2 when
|
||||
* using the shell to start up the program.
|
||||
*/
|
||||
#undef START_INFERIOR_TRAPS_EXPECTED
|
||||
#define START_INFERIOR_TRAPS_EXPECTED 2
|
||||
|
||||
#define INVALID_FLOAT(p, s) isa_NAN(p, s)
|
||||
|
||||
/* Address of end of stack space.
|
||||
|
@ -60,8 +60,6 @@ fork_inferior (exec_file, allargs, env, traceme_fun, init_trace_fun)
|
||||
char *shell_file;
|
||||
static char default_shell_file[] = SHELL_FILE;
|
||||
int len;
|
||||
int pending_execs;
|
||||
int terminal_initted;
|
||||
/* Set debug_fork then attach to the child while it sleeps, to debug. */
|
||||
static int debug_fork = 0;
|
||||
/* This is set to the result of setpgrp, which if vforked, will be visible
|
||||
@ -241,28 +239,35 @@ fork_inferior (exec_file, allargs, env, traceme_fun, init_trace_fun)
|
||||
|
||||
init_thread_list();
|
||||
|
||||
inferior_pid = pid; /* Needed for wait_for_inferior stuff below */
|
||||
|
||||
/* Now that we have a child process, make it our target, and
|
||||
initialize anything target-vector-specific that needs initializing. */
|
||||
(*init_trace_fun)(pid);
|
||||
|
||||
/* We are now in the child process of interest, having exec'd the
|
||||
correct program, and are poised at the first instruction of the
|
||||
new program. */
|
||||
#ifdef SOLIB_CREATE_INFERIOR_HOOK
|
||||
SOLIB_CREATE_INFERIOR_HOOK (pid);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Accept NTRAPS traps from the inferior. */
|
||||
|
||||
void
|
||||
startup_inferior (ntraps)
|
||||
int ntraps;
|
||||
{
|
||||
int pending_execs = ntraps;
|
||||
int terminal_initted;
|
||||
|
||||
/* The process was started by the fork that created it,
|
||||
but it will have stopped one instruction after execing the shell.
|
||||
Here we must get it up to actual execution of the real program. */
|
||||
|
||||
inferior_pid = pid; /* Needed for wait_for_inferior stuff below */
|
||||
|
||||
clear_proceed_status ();
|
||||
|
||||
/* We will get a trace trap after one instruction.
|
||||
Continue it automatically. Eventually (after shell does an exec)
|
||||
it will get another trace trap. Then insert breakpoints and continue. */
|
||||
|
||||
#ifdef START_INFERIOR_TRAPS_EXPECTED
|
||||
pending_execs = START_INFERIOR_TRAPS_EXPECTED;
|
||||
#else
|
||||
pending_execs = 2;
|
||||
#endif
|
||||
|
||||
init_wait_for_inferior ();
|
||||
|
||||
terminal_initted = 0;
|
||||
@ -301,11 +306,4 @@ fork_inferior (exec_file, allargs, env, traceme_fun, init_trace_fun)
|
||||
}
|
||||
}
|
||||
stop_soon_quietly = 0;
|
||||
|
||||
/* We are now in the child process of interest, having exec'd the
|
||||
correct program, and are poised at the first instruction of the
|
||||
new program. */
|
||||
#ifdef SOLIB_CREATE_INFERIOR_HOOK
|
||||
SOLIB_CREATE_INFERIOR_HOOK (pid);
|
||||
#endif
|
||||
}
|
||||
|
@ -1143,6 +1143,9 @@ m3_trace_him (pid)
|
||||
setup_exception_port ();
|
||||
|
||||
xx_debug ("Now the debugged task is created\n");
|
||||
|
||||
/* One trap to exec the shell, one to exec the program being debugged. */
|
||||
intercept_exec_calls (2);
|
||||
}
|
||||
|
||||
setup_exception_port ()
|
||||
|
@ -1523,6 +1523,9 @@ procfs_init_inferior (pid)
|
||||
|
||||
create_procinfo (pid);
|
||||
add_thread (pid); /* Setup initial thread */
|
||||
|
||||
/* One trap to exec the shell, one to exec the program being debugged. */
|
||||
startup_inferior (2);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user