Lines Matching refs:pid
74 pid_t pid; in setup_and_wait() local
76 pid = vfork(); in setup_and_wait()
77 if (pid == -1) in setup_and_wait()
79 if (pid == 0) { /* Child */ in setup_and_wait()
86 if (waitpid(pid, NULL, 0) < 0) in setup_and_wait()
89 new_proc(info, pid); in setup_and_wait()
96 start_tracing(struct trussinfo *info, pid_t pid) in start_tracing() argument
102 ret = ptrace(PT_ATTACH, pid, NULL, 0); in start_tracing()
108 if (waitpid(pid, NULL, 0) < 0) in start_tracing()
111 new_proc(info, pid); in start_tracing()
128 detach_proc(pid_t pid) in detach_proc() argument
132 kill(pid, SIGSTOP); in detach_proc()
133 if (waitpid(pid, NULL, 0) < 0) in detach_proc()
136 if (ptrace(PT_DETACH, pid, (caddr_t)1, 0) < 0) in detach_proc()
139 kill(pid, SIGCONT); in detach_proc()
147 find_abi(pid_t pid) in find_abi() argument
159 mib[3] = pid; in find_abi()
168 warnx("ABI %s for pid %ld is not supported", progt, (long)pid); in find_abi()
173 new_proc(struct trussinfo *info, pid_t pid) in new_proc() argument
182 if (np->pid == pid) in new_proc()
183 errx(1, "Duplicate process for pid %ld", (long)pid); in new_proc()
187 if (ptrace(PT_FOLLOW_FORK, pid, NULL, 1) == -1) in new_proc()
188 err(1, "Unable to follow forks for pid %ld", (long)pid); in new_proc()
190 np->pid = pid; in new_proc()
191 np->abi = find_abi(pid); in new_proc()
214 detach_proc(p->pid); in detach_all_procs()
220 find_proc(struct trussinfo *info, pid_t pid) in find_proc() argument
225 if (np->pid == pid) in find_proc()
237 find_thread(struct trussinfo *info, pid_t pid, lwpid_t lwpid) in find_thread() argument
242 np = find_proc(info, pid); in find_thread()
270 find_exit_thread(struct trussinfo *info, pid_t pid) in find_exit_thread() argument
275 np = find_proc(info, pid); in find_exit_thread()
433 p->abi = find_abi(p->pid); in exit_syscall()
435 if (ptrace(PT_DETACH, p->pid, (caddr_t)1, 0) < 0) in exit_syscall()
453 len += fprintf(info->outfile, "%5d", t->proc->pid); in print_line_prefix()