From 37fb61d89d36719cbadde28ab2514e9eb804fa2e Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Fri, 28 Apr 2023 12:33:20 -0400 Subject: rts: Introduce printGlobalThreads --- rts/Threads.c | 14 ++++++++++++++ rts/Threads.h | 1 + 2 files changed, 15 insertions(+) diff --git a/rts/Threads.c b/rts/Threads.c index b36b4ddb81..ff57e5e3f0 100644 --- a/rts/Threads.c +++ b/rts/Threads.c @@ -1007,6 +1007,20 @@ printAllThreads(void) } } +void +printGlobalThreads(void) +{ + for (uint32_t g = 0; g < RtsFlags.GcFlags.generations; g++) { + debugBelch("\ngen %d\n", g); + for (StgTSO *t = generations[g].threads; t != END_TSO_QUEUE; t = t->global_link) { + debugBelch("thread %p (id=%lu)\n", t, t->id); + } + for (StgTSO *t = generations[g].old_threads; t != END_TSO_QUEUE; t = t->global_link) { + debugBelch("thread %p (id=%lu) (old)\n", t, t->id); + } + } +} + // useful from gdb void printThreadQueue(StgTSO *t) diff --git a/rts/Threads.h b/rts/Threads.h index c0a9f1cf1c..b74ac1381d 100644 --- a/rts/Threads.h +++ b/rts/Threads.h @@ -46,6 +46,7 @@ bool performTryPutMVar(Capability *cap, StgMVar *mvar, StgClosure *value); void printThreadBlockage (StgTSO *tso); void printThreadStatus (StgTSO *t); void printAllThreads (void); +void printGlobalThreads(void); void printThreadQueue (StgTSO *t); #endif -- cgit v1.2.1