Hi,

The ps flags are split between thread and process.  It would be
useful if ddb shows both.  I or them together in the ps overview
and list them explicitly for the specific thread.

ddb> show all procs
   PID   PPID   PGRP    UID  S       FLAGS  WAIT          COMMAND
 18514      1  18514      0  3     0x40180  select        sendmail

ddb> show proc 0xd317a460
PROC (sendmail) pid=18514 stat=sleep
    flags process=40100<SUGID,SUGIDEXEC> proc=80<SINTR>

I also synced the ddb bit names with the define names.

ok?

bluhm

Index: kern/kern_proc.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/kern/kern_proc.c,v
retrieving revision 1.51
diff -u -p -u -p -r1.51 kern_proc.c
--- kern/kern_proc.c    8 Aug 2013 23:25:06 -0000       1.51
+++ kern/kern_proc.c    11 Aug 2013 03:29:35 -0000
@@ -395,8 +395,9 @@ proc_printit(struct proc *p, const char 
        else
                pst = pstat[(int)p->p_stat - 1];
 
-       (*pr)("PROC (%s) pid=%d stat=%s flags=%b\n",
-           p->p_comm, p->p_pid, pst, p->p_flag, P_BITS);
+       (*pr)("PROC (%s) pid=%d stat=%s\n", p->p_comm, p->p_pid, pst);
+       (*pr)("    flags process=%b proc=%b\n",
+           p->p_p->ps_flags, P_BITS, p->p_flag, P_BITS);
        (*pr)("    pri=%u, usrpri=%u, nice=%d\n",
            p->p_priority, p->p_usrpri, p->p_p->ps_nice);
        (*pr)("    forw=%p, list=%p,%p\n",
@@ -474,7 +475,8 @@ db_show_all_procs(db_expr_t addr, int ha
                                    "%-12.12s  %-16s\n",
                                    ppr ? ppr->ps_pid : -1,
                                    pr->ps_pgrp ? pr->ps_pgrp->pg_id : -1,
-                                   pr->ps_cred->p_ruid, p->p_stat, p->p_flag,
+                                   pr->ps_cred->p_ruid, p->p_stat,
+                                   p->p_flag | p->p_p->ps_flags,
                                    (p->p_wchan && p->p_wmesg) ?
                                        p->p_wmesg : "", p->p_comm);
                                break;
Index: sys/proc.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/sys/proc.h,v
retrieving revision 1.168
diff -u -p -u -p -r1.168 proc.h
--- sys/proc.h  6 Jun 2013 13:09:37 -0000       1.168
+++ sys/proc.h  11 Aug 2013 02:51:13 -0000
@@ -412,12 +412,14 @@ struct proc {
 #endif
 
 #define        P_BITS \
-    ("\20\02CONTROLT\03INMEM\04SIGPAUSE\05PPWAIT\06PROFIL\07SELECT" \
-     "\010SINTR\011SUGID\012SYSTEM\013TIMEOUT\014TRACED\015WAITED\016WEXIT" \
-     "\017EXEC\020PWEUPC\021ISPWAIT\022COREDUMPING\023SUGIDEXEC\024SUSPSINGLE" 
\
+    ("\20\01INKTR\02CONTROLT\03INMEM\04SIGSUSPEND" \
+     "\05PPWAIT\06PROFIL\07SELECT\010SINTR" \
+     "\011SUGID\012SYSTEM\013TIMEOUT\014TRACED" \
+     "\015WAITED\016WEXIT\017EXEC\020OWEUPC" \
+     "\021ISPWAIT\022COREDUMP\023SUGIDEXEC\024SUSPSINGLE" \
      "\025NOZOMBIE\026INEXEC\027SYSTRACE\030CONTINUED" \
-     "\031SINGLEEXIT\032SINGLEUNWIND" \
-     "\033THREAD\034SUSPSIG\035SOFTDEP\036STOPPED\037CPUPEG")
+     "\031SINGLEEXIT\032SINGLEUNWIND\033THREAD\034SUSPSIG" \
+     "\035SOFTDEP\036STOPPED\037CPUPEG\040EXITING")
 
 /* Macro to compute the exit signal to be delivered. */
 #define P_EXITSIG(p) \

Reply via email to