Page MenuHomeFreeBSD

D27829.id81345.diff
No OneTemporary

D27829.id81345.diff

Index: sys/ddb/db_command.c
===================================================================
--- sys/ddb/db_command.c
+++ sys/ddb/db_command.c
@@ -847,32 +847,31 @@
static void
_db_stack_trace_all(bool active_only)
{
- struct proc *p;
struct thread *td;
jmp_buf 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);
if (setjmp(jb) == 0) {
- FOREACH_THREAD_IN_PROC(p, td) {
- if (td->td_state == TDS_RUNNING)
- db_printf("\nTracing command %s pid %d"
- " tid %ld td %p (CPU %d)\n",
- p->p_comm, p->p_pid,
- (long)td->td_tid, td,
- td->td_oncpu);
- else if (active_only)
- continue;
- else
- db_printf("\nTracing command %s pid %d"
- " tid %ld td %p\n", p->p_comm,
- p->p_pid, (long)td->td_tid, td);
+ if (td->td_state == TDS_RUNNING)
+ db_printf("\nTracing command %s pid %d"
+ " tid %ld td %p (CPU %d)\n",
+ td->td_proc->p_comm, td->td_proc->p_pid,
+ (long)td->td_tid, td, td->td_oncpu);
+ else if (active_only)
+ continue;
+ else
+ db_printf("\nTracing command %s pid %d"
+ " tid %ld td %p\n", td->td_proc->p_comm,
+ td->td_proc->p_pid, (long)td->td_tid, td);
+ if (td->td_proc->p_flag & P_INMEM)
db_trace_thread(td, -1);
- if (db_pager_quit) {
- kdb_jmpbuf(prev_jb);
- return;
- }
+ else
+ db_printf("--- swapped out\n");
+ if (db_pager_quit) {
+ kdb_jmpbuf(prev_jb);
+ return;
}
}
kdb_jmpbuf(prev_jb);
Index: sys/ddb/db_ps.c
===================================================================
--- sys/ddb/db_ps.c
+++ sys/ddb/db_ps.c
@@ -501,7 +501,6 @@
db_findstack_cmd(db_expr_t addr, bool have_addr, db_expr_t dummy3 __unused,
char *dummy4 __unused)
{
- struct proc *p;
struct thread *td;
vm_offset_t saddr;
@@ -512,12 +511,10 @@
return;
}
- FOREACH_PROC_IN_SYSTEM(p) {
- FOREACH_THREAD_IN_PROC(p, td) {
- if (kstack_contains(td, saddr, 1)) {
- db_printf("Thread %p\n", td);
- return;
- }
+ for (td = kdb_thr_first(); td != NULL; td = kdb_thr_next(td)) {
+ if (kstack_contains(td, saddr, 1)) {
+ db_printf("Thread %p\n", td);
+ return;
}
}
}

File Metadata

Mime Type
text/plain
Expires
Tue, Apr 7, 1:52 PM (5 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30989759
Default Alt Text
D27829.id81345.diff (2 KB)

Event Timeline