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} |