Changeset View
Changeset View
Standalone View
Standalone View
sys/ddb/db_command.c
Show First 20 Lines • Show All 841 Lines • ▼ Show 20 Lines | if (td->td_proc != NULL && (td->td_proc->p_flag & P_INMEM) == 0) | ||||
db_printf("--- swapped out\n"); | db_printf("--- swapped out\n"); | ||||
else | else | ||||
db_trace_thread(td, count); | db_trace_thread(td, count); | ||||
} | } | ||||
static void | static void | ||||
_db_stack_trace_all(bool active_only) | _db_stack_trace_all(bool active_only) | ||||
{ | { | ||||
struct proc *p; | |||||
struct thread *td; | struct thread *td; | ||||
jmp_buf jb; | jmp_buf jb; | ||||
void *prev_jb; | void *prev_jb; | ||||
FOREACH_PROC_IN_SYSTEM(p) { | for (td = kdb_thr_first(); td != NULL; td = kdb_thr_next(td)) { | ||||
prev_jb = kdb_jmpbuf(jb); | prev_jb = kdb_jmpbuf(jb); | ||||
if (setjmp(jb) == 0) { | if (setjmp(jb) == 0) { | ||||
FOREACH_THREAD_IN_PROC(p, td) { | |||||
if (td->td_state == TDS_RUNNING) | if (td->td_state == TDS_RUNNING) | ||||
db_printf("\nTracing command %s pid %d" | db_printf("\nTracing command %s pid %d" | ||||
" tid %ld td %p (CPU %d)\n", | " tid %ld td %p (CPU %d)\n", | ||||
p->p_comm, p->p_pid, | td->td_proc->p_comm, td->td_proc->p_pid, | ||||
(long)td->td_tid, td, | (long)td->td_tid, td, td->td_oncpu); | ||||
td->td_oncpu); | |||||
else if (active_only) | else if (active_only) | ||||
continue; | continue; | ||||
else | else | ||||
db_printf("\nTracing command %s pid %d" | db_printf("\nTracing command %s pid %d" | ||||
" tid %ld td %p\n", p->p_comm, | " tid %ld td %p\n", td->td_proc->p_comm, | ||||
p->p_pid, (long)td->td_tid, td); | td->td_proc->p_pid, (long)td->td_tid, td); | ||||
if (td->td_proc->p_flag & P_INMEM) | |||||
db_trace_thread(td, -1); | db_trace_thread(td, -1); | ||||
else | |||||
db_printf("--- swapped out\n"); | |||||
if (db_pager_quit) { | if (db_pager_quit) { | ||||
kdb_jmpbuf(prev_jb); | kdb_jmpbuf(prev_jb); | ||||
return; | return; | ||||
} | |||||
} | } | ||||
} | } | ||||
kdb_jmpbuf(prev_jb); | kdb_jmpbuf(prev_jb); | ||||
} | } | ||||
} | } | ||||
static void | static void | ||||
db_stack_trace_active(db_expr_t dummy, bool dummy2, db_expr_t dummy3, | db_stack_trace_active(db_expr_t dummy, bool dummy2, db_expr_t dummy3, | ||||
Show All 38 Lines |