bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] ddb: add `show all tasks' command


From: Justus Winter
Subject: [PATCH] ddb: add `show all tasks' command
Date: Tue, 16 Sep 2014 14:29:30 +0200

* 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(+)

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,
-- 
2.1.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]