Deleted Added
full compact
db_ps.c (102667) db_ps.c (103216)
1/*-
2 * Copyright (c) 1993 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
1/*-
2 * Copyright (c) 1993 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * $FreeBSD: head/sys/ddb/db_ps.c 102667 2002-08-31 04:25:44Z bde $
33 * $FreeBSD: head/sys/ddb/db_ps.c 103216 2002-09-11 08:13:56Z julian $
34 */
35#include <sys/param.h>
36#include <sys/systm.h>
37#include <sys/lock.h>
38#include <sys/mutex.h>
39#include <sys/proc.h>
40#include <sys/cons.h>
41

--- 65 unchanged lines hidden (view full) ---

107 break;
108 case PRS_NEW:
109 state = "new ";
110 break;
111 case PRS_WAIT:
112 state = "wait";
113 break;
114 case PRS_ZOMBIE:
34 */
35#include <sys/param.h>
36#include <sys/systm.h>
37#include <sys/lock.h>
38#include <sys/mutex.h>
39#include <sys/proc.h>
40#include <sys/cons.h>
41

--- 65 unchanged lines hidden (view full) ---

107 break;
108 case PRS_NEW:
109 state = "new ";
110 break;
111 case PRS_WAIT:
112 state = "wait";
113 break;
114 case PRS_ZOMBIE:
115 state = "zomp";
115 state = "zomb";
116 break;
117 default:
118 state = "Unkn";
119 break;
120 }
121 db_printf("%5d %8p %8p %4d %5d %5d %07x %-4s",
122 p->p_pid, (volatile void *)p, (void *)p->p_uarea,
123 p->p_ucred != NULL ? p->p_ucred->cr_ruid : 0, pp->p_pid,
124 p->p_pgrp != NULL ? p->p_pgrp->pg_id : 0, p->p_flag,
125 state);
116 break;
117 default:
118 state = "Unkn";
119 break;
120 }
121 db_printf("%5d %8p %8p %4d %5d %5d %07x %-4s",
122 p->p_pid, (volatile void *)p, (void *)p->p_uarea,
123 p->p_ucred != NULL ? p->p_ucred->cr_ruid : 0, pp->p_pid,
124 p->p_pgrp != NULL ? p->p_pgrp->pg_id : 0, p->p_flag,
125 state);
126 if (p->p_flag & P_KSES) {
126 if (p->p_flag & P_KSES)
127 db_printf("(threaded) %s\n", p->p_comm);
127 db_printf("(threaded) %s\n", p->p_comm);
128 FOREACH_THREAD_IN_PROC(p, td) {
129 db_printf( ". . . . . . . "
130 ". thread %p . . . ", td);
131 if (td->td_wchan != NULL) {
132 db_printf("SLP %6s %8p\n", td->td_wmesg,
133 (void *)td->td_wchan);
134 } else if (td->td_state == TDS_MTX) {
135 db_printf("MTX %6s %8p\n", td->td_mtxname,
136 (void *)td->td_blocked);
137 } else {
138 db_printf("--not blocked--\n");
128 FOREACH_THREAD_IN_PROC(p, td) {
129 if (p->p_flag & P_KSES)
130 db_printf( " thread %p ", td);
131 if (TD_ON_SLEEPQ(td)) {
132 if (td->td_flags & TDF_CVWAITQ)
133 db_printf("[CVQ ");
134 else
135 db_printf("[SLPQ ");
136 db_printf(" %6s %8p]", td->td_wmesg,
137 (void *)td->td_wchan);
138 }
139 switch (td->td_state) {
140 case TDS_INHIBITED:
141 if (TD_ON_MUTEX(td)) {
142 db_printf("[MTX %6s %8p]",
143 td->td_mtxname,
144 (void *)td->td_blocked);
139 }
145 }
146 if (TD_IS_SLEEPING(td)) {
147 db_printf("[SLP]");
148 }
149 if (TD_IS_SWAPPED(td)) {
150 db_printf("[SWAP]");
151 }
152 if (TD_IS_SUSPENDED(td)) {
153 db_printf("[SUSP]");
154 }
155 if (TD_AWAITING_INTR(td)) {
156 db_printf("[IWAIT]");
157 }
158 break;
159 case TDS_CAN_RUN:
160 db_printf("[Can run]");
161 break;
162 case TDS_RUNQ:
163 db_printf("[RUNQ]");
164 break;
165 case TDS_RUNNING:
166 db_printf("[CPU %d]", td->td_kse->ke_oncpu);
167 break;
168 default:
169 panic("unknown thread state");
140 }
170 }
141 } else {
142 td = FIRST_THREAD_IN_PROC(p);
143 if (td != NULL && td->td_wchan != NULL) {
144 db_printf(" %-6s %8p", td->td_wmesg,
145 (void *)td->td_wchan);
146 } else if (td != NULL && td->td_state == TDS_MTX) {
147 db_printf(" %6s %8p", td->td_mtxname,
148 (void *)td->td_blocked);
149 } else {
150 db_printf(" ");
151 }
152 db_printf(" %s\n", p->p_comm);
171 if (p->p_flag & P_KSES)
172 db_printf("\n");
173 else
174 db_printf(" %s\n", p->p_comm);
175
153 }
154 /* PROC_UNLOCK(p); */
155
156 p = LIST_NEXT(p, p_list);
157 if (p == NULL && np > 0)
158 p = LIST_FIRST(&zombproc);
159 }
160 /* sx_sunlock(&allproc_lock); */
161}
176 }
177 /* PROC_UNLOCK(p); */
178
179 p = LIST_NEXT(p, p_list);
180 if (p == NULL && np > 0)
181 p = LIST_FIRST(&zombproc);
182 }
183 /* sx_sunlock(&allproc_lock); */
184}