From: Perttu Ahola Date: Fri, 25 Nov 2011 15:42:12 +0000 (+0200) Subject: Improve debug stack printing interface X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=6153a2fb104a2b4eb88885690f3d5e1826320643;p=zefram%2Fminetest%2Fminetest_engine.git Improve debug stack printing interface --- diff --git a/src/debug.cpp b/src/debug.cpp index befd73a3..ad02c511 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -101,7 +101,7 @@ void DebugStack::print(FILE *file, bool everything) for(int i=0; i g_debug_stacks; JMutex g_debug_stacks_mutex; @@ -122,6 +140,21 @@ void debug_stacks_init() g_debug_stacks_mutex.Init(); } +void debug_stacks_print_to(std::ostream &os) +{ + JMutexAutoLock lock(g_debug_stacks_mutex); + + os<<"Debug stacks:"<::Iterator + i = g_debug_stacks.getIterator(); + i.atEnd() == false; i++) + { + DebugStack *stack = i.getNode()->getValue(); + stack->print(os, false); + } +} + void debug_stacks_print() { JMutexAutoLock lock(g_debug_stacks_mutex); diff --git a/src/debug.h b/src/debug.h index 98fe6e12..5150758b 100644 --- a/src/debug.h +++ b/src/debug.h @@ -145,6 +145,7 @@ struct DebugStack { DebugStack(threadid_t id); void print(FILE *file, bool everything); + void print(std::ostream &os, bool everything); threadid_t threadid; char stack[DEBUG_STACK_SIZE][DEBUG_STACK_TEXT_SIZE]; @@ -156,6 +157,7 @@ extern core::map g_debug_stacks; extern JMutex g_debug_stacks_mutex; extern void debug_stacks_init(); +extern void debug_stacks_print_to(std::ostream &os); extern void debug_stacks_print(); class DebugStacker