diff options
Diffstat (limited to 'ddb')
-rw-r--r-- | ddb/db_command.c | 1 | ||||
-rw-r--r-- | ddb/db_print.c | 24 | ||||
-rw-r--r-- | ddb/db_print.h | 6 |
3 files changed, 31 insertions, 0 deletions
diff --git a/ddb/db_command.c b/ddb/db_command.c index 8171119..5651667 100644 --- a/ddb/db_command.c +++ b/ddb/db_command.c @@ -304,6 +304,7 @@ db_command_list( } struct db_command db_show_all_cmds[] = { + { "tasks", db_show_all_tasks, 0, 0 }, { "threads", db_show_all_threads, 0, 0 }, { "slocks", db_show_all_slocks, 0, 0 }, { (char *)0 } diff --git a/ddb/db_print.c b/ddb/db_print.c index e711ab6..24a3e33 100644 --- a/ddb/db_print.c +++ b/ddb/db_print.c @@ -276,6 +276,30 @@ db_print_task( } } +void +db_show_all_tasks(db_expr_t addr, + boolean_t have_addr, + db_expr_t count, + const char *modif) +{ + task_t task; + int task_id = 0; + processor_set_t pset; + + db_printf(" ID %-*s NAME [THREADS]\n", 2*sizeof(vm_offset_t), "TASK"); + + queue_iterate(&all_psets, pset, processor_set_t, all_psets) + queue_iterate(&pset->tasks, task, task_t, pset_tasks) { + db_printf("%3d %0*X %s [%d]\n", + task_id, + 2*sizeof(vm_offset_t), + task, + task->name, + task->thread_count); + task_id++; + } +} + /*ARGSUSED*/ void db_show_all_threads(addr, have_addr, count, modif) diff --git a/ddb/db_print.h b/ddb/db_print.h index dacb47b..87db97b 100644 --- a/ddb/db_print.h +++ b/ddb/db_print.h @@ -38,6 +38,12 @@ void db_show_one_thread( db_expr_t count, const char * modif); +void db_show_all_tasks( + db_expr_t addr, + int have_addr, + db_expr_t count, + const char * modif); + void db_show_all_threads( db_expr_t addr, int have_addr, |