From dcadebae62896ce5e118b7cd727f991e587e7191 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sat, 13 Jan 2007 17:13:50 +0000 Subject: [PATCH] The "thread" debugger command now also prints out the thread exit waiters. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19785 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/thread.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/thread.c b/src/system/kernel/thread.c index f73b24f9a4..afb1e4299d 100644 --- a/src/system/kernel/thread.c +++ b/src/system/kernel/thread.c @@ -548,6 +548,8 @@ static struct thread *last_thread_dumped = NULL; static void _dump_thread_info(struct thread *thread) { + struct death_entry *death = NULL; + kprintf("THREAD: %p\n", thread); kprintf("id: 0x%lx\n", thread->id); kprintf("name: \"%s\"\n", thread->name); @@ -571,7 +573,15 @@ _dump_thread_info(struct thread *thread) kprintf("args: %p %p\n", thread->args1, thread->args2); kprintf("entry: %p\n", (void *)thread->entry); kprintf("team: %p, \"%s\"\n", thread->team, thread->team->name); - kprintf("exit.sem: 0x%lx\n", thread->exit.sem); + kprintf(" exit.sem: 0x%lx\n", thread->exit.sem); + kprintf(" exit.status: 0x%lx (%s)\n", thread->exit.status, strerror(thread->exit.status)); + kprintf(" exit.reason: 0x%x\n", thread->exit.reason); + kprintf(" exit.signal: 0x%x\n", thread->exit.signal); + kprintf(" exit.waiters:\n"); + while ((death = list_get_next_item(&thread->exit.waiters, death)) != NULL) { + kprintf("\t%p (team 0x%lx, thread 0x%lx)\n", death, death->team, death->thread); + } + kprintf("kernel_stack_area: 0x%lx\n", thread->kernel_stack_area); kprintf("kernel_stack_base: %p\n", (void *)thread->kernel_stack_base); kprintf("user_stack_area: 0x%lx\n", thread->user_stack_area);