extern int dtime, xflag, qflag;
extern cflag_t cflag;
extern int acolumn;
-extern unsigned int nprocs, tcbtabsize;
extern int max_strlen;
extern struct tcb *tcp_last;
extern struct tcb *alloc_tcb(int, int);
extern struct tcb *pid2tcb(int);
extern void droptcb(struct tcb *);
-extern void expand_tcbtab(void);
#define alloctcb(pid) alloc_tcb((pid), 1)
return 0;
}
-/* TCP is creating a child we want to follow.
- If there will be space in tcbtab for it, set TCB_FOLLOWFORK and return 0.
- If not, clear TCB_FOLLOWFORK, print an error, and return 1. */
-static void
-fork_tcb(struct tcb *tcp)
-{
- if (nprocs == tcbtabsize)
- expand_tcbtab();
-
- tcp->flags |= TCB_FOLLOWFORK;
-}
-
#ifdef USE_PROCFS
int
return 0;
if (!followfork)
return 0;
- fork_tcb(tcp);
+ tcp->flags |= TCB_FOLLOWFORK;
if (syserror(tcp))
return 0;
tcpchild = alloctcb(tcp->u_rval);
else
#endif /* CLONE_PTRACE */
{
- fork_tcb(tcp);
+ tcp->flags |= TCB_FOLLOWFORK;
tcpchild = alloctcb(pid);
}
if ((sysent[tcp->scno].sys_func == sys_clone) &&
(tcp->u_arg[ARG_FLAGS] & CLONE_UNTRACED))
return 0;
- fork_tcb(tcp);
+ tcp->flags |= TCB_FOLLOWFORK;
setbpt(tcp);
} else {
int pid;
if (entering(tcp)) {
if (!followfork || dont_follow)
return 0;
- fork_tcb(tcp);
+ tcp->flags |= TCB_FOLLOWFORK;
setbpt(tcp);
}
else {
return 0;
pid = tcp->u_rval;
- fork_tcb(tcp);
+ tcp->flags |= TCB_FOLLOWFORK;
tcpchild = alloctcb(pid);
#ifdef SUNOS4
#ifdef oldway
FILE *outf;
static int curcol;
struct tcb **tcbtab;
-unsigned int nprocs, tcbtabsize;
+static unsigned int nprocs, tcbtabsize;
const char *progname;
-extern char **environ;
static int detach(struct tcb *tcp, int sig);
static int trace(void);
exit(exit_code);
}
-void
+static void
expand_tcbtab(void)
{
/* Allocate some more TCBs and expand the table.