diff options
| author | Tor Egge <tegge@FreeBSD.org> | 1997-06-25 20:56:48 +0000 |
|---|---|---|
| committer | Tor Egge <tegge@FreeBSD.org> | 1997-06-25 20:56:48 +0000 |
| commit | a58930d8a925a73b08ef3973f50ac738172e825a (patch) | |
| tree | 34c48b11fe4ceaf8c5aa5a388da382ba44259024 /lib/libkvm | |
| parent | 91f7398bca3d04a1a0db92a25770d0ca621ccca5 (diff) | |
Notes
Diffstat (limited to 'lib/libkvm')
| -rw-r--r-- | lib/libkvm/kvm_proc.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c index 6a0df4a6e496..d167f34ee5ee 100644 --- a/lib/libkvm/kvm_proc.c +++ b/lib/libkvm/kvm_proc.c @@ -110,6 +110,7 @@ kvm_proclist(kd, what, arg, p, bp, maxcnt) struct session sess; struct tty tty; struct proc proc; + struct proc pproc; for (; cnt < maxcnt && p != NULL; p = proc.p_list.le_next) { if (KREAD(kd, (u_long)p, &proc)) { @@ -155,6 +156,17 @@ kvm_proclist(kd, what, arg, p, bp, maxcnt) proc.p_pgrp); return (-1); } + if (proc.p_oppid) + eproc.e_ppid = proc.p_oppid; + else if (proc.p_pptr) { + if (KREAD(kd, (u_long)proc.p_pptr, &pproc)) { + _kvm_err(kd, kd->program, "can't read pproc at %x", + proc.p_pptr); + return (-1); + } + eproc.e_ppid = pproc.p_pid; + } else + eproc.e_ppid = 0; eproc.e_sess = pgrp.pg_session; eproc.e_pgid = pgrp.pg_id; eproc.e_jobc = pgrp.pg_jobc; |
