From ffd4f3c8239b41d3fe9fa14403eb063e02b6a222 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Sat, 13 Sep 2014 00:41:11 +0200 Subject: ddb: add `show all tasks' command * ddb/db_command.c (db_show_all_cmds): Add `tasks'. * ddb/db_print.c (db_show_all_tasks): New function. * ddb/db_print.h (db_show_all_tasks): New prototype. --- ddb/db_command.c | 1 + ddb/db_print.c | 24 ++++++++++++++++++++++++ ddb/db_print.h | 6 ++++++ 3 files changed, 31 insertions(+) (limited to 'ddb') 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, -- cgit v1.2.3