aboutsummaryrefslogtreecommitdiff
path: root/gdb/fork-child.c
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1996-05-06 21:27:37 +0000
committerStu Grossman <grossman@cygnus>1996-05-06 21:27:37 +0000
commit8fc2b4170d265de393242b325b4ff76f51c52555 (patch)
treee19352114da659be8fbb01723a2acb00e8384597 /gdb/fork-child.c
parent1ed0c0e75db12ea291a4bfef18fc6e59243ba52a (diff)
downloadgdb-8fc2b4170d265de393242b325b4ff76f51c52555.zip
gdb-8fc2b4170d265de393242b325b4ff76f51c52555.tar.gz
gdb-8fc2b4170d265de393242b325b4ff76f51c52555.tar.bz2
* fork-child.c (fork_inferior), inferior.h: init_trace_fun now
returns a possibly modified pid. * inftarg.c (ptrace_him): Now returns pid; * m3-nat.c (m3_trace_him): Now returns pid; * infcmd.c (run_command): Minor cleanup. * infrun.c (wait_for_inferior): Add another check for one_stepped near where we read the pc to avoid erroneously setting random_signal for multi-threaded support. * procfs.c: Add support for Solaris LWPs. Remove def of LOSING_POLL. Many cleanups... Several workarounds for Solaris lossage. System call entry and exit are now handled by dynamically registered handlers. * (syscallname): Don't barf when handed an unknown syscall number. * (info_proc_syscalls): Ditto. * sol-thread.c: New file. Implements Solaris thread support. * symfile.c (symbol_file_add): Add call to target_new_objfile to notify target-dependent code about new symbol tables. * (clear_symtab_users): Call target_new_objfile to notify it of the removal of all symbol tables. * target.c (push_target): Make sure that to_close is non-zero before calling it. * target.h (target_new_objfile): Provide default. * config/alpha/nm-osf2.h: Define LOSING_POLL because this version of OSF can't hack using poll with /proc. * config/sparc/nm-sun4sol2.h (target_new_objfile): Define to be sol-thread-new-objfile. * config/sparc/sun4sol2.mh: Add sol-thread.o to NATDEFFILES, and add libthread_db.so.1 to NAT_CLIBS. * config/sparc/tm-sun4sol2.h: Define PIDGET, TIDGET, and target_pid_to_str.
Diffstat (limited to 'gdb/fork-child.c')
-rw-r--r--gdb/fork-child.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gdb/fork-child.c b/gdb/fork-child.c
index df289d4..1b00c93 100644
--- a/gdb/fork-child.c
+++ b/gdb/fork-child.c
@@ -1,5 +1,5 @@
/* Fork a Unix child process, and set up to debug it, for GDB.
- Copyright 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
+ Copyright 1990, 1991, 1992, 1993, 1994, 1996 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB.
@@ -52,7 +52,7 @@ fork_inferior (exec_file, allargs, env, traceme_fun, init_trace_fun,
char *allargs;
char **env;
void (*traceme_fun) PARAMS ((void));
- void (*init_trace_fun) PARAMS ((int));
+ int (*init_trace_fun) PARAMS ((int));
char *shell_file;
{
int pid;
@@ -233,7 +233,9 @@ fork_inferior (exec_file, allargs, env, traceme_fun, init_trace_fun,
/* Now that we have a child process, make it our target, and
initialize anything target-vector-specific that needs initializing. */
- (*init_trace_fun)(pid);
+
+ /* Note that pid may be modified by this function. */
+ inferior_pid = pid = (*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