From 7de07eb78c10217c87f0f6a4c12ef2927d044e00 Mon Sep 17 00:00:00 2001 From: Ben Gamari <bgamari.foss@gmail.com> Date: Sat, 7 Sep 2013 17:53:34 -0400 Subject: [PATCH] rts: Print correct stack size on stack overflow This requires that stackOverflow() in RtsUtils.c be passed a reference to the current TSO. This requires a small change in libraries/base. --- includes/Rts.h | 2 +- rts/RtsUtils.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/includes/Rts.h b/includes/Rts.h index 96dc6a5c308e..aca6c496052a 100644 --- a/includes/Rts.h +++ b/includes/Rts.h @@ -250,7 +250,7 @@ void getWin32ProgArgv(int *argc, wchar_t **argv[]); void setWin32ProgArgv(int argc, wchar_t *argv[]); #endif -void stackOverflow(void); +void stackOverflow(StgTSO* tso); void stg_exit(int n) GNU_ATTRIBUTE(__noreturn__); diff --git a/rts/RtsUtils.c b/rts/RtsUtils.c index b06b6af962bd..185f1e8bdd1f 100644 --- a/rts/RtsUtils.c +++ b/rts/RtsUtils.c @@ -114,12 +114,12 @@ stgFree(void* p) -------------------------------------------------------------------------- */ void -stackOverflow(void) +stackOverflow(StgTSO* tso) { - StackOverflowHook(RtsFlags.GcFlags.maxStkSize * sizeof(W_)); + StackOverflowHook(tso->tot_stack_size * sizeof(W_)); #if defined(TICKY_TICKY) - if (RtsFlags.TickyFlags.showTickyStats) PrintTickyInfo(); + if (RtsFlags.TickyFlags.showTickyStats) PrintTickyInfo(); #endif } -- GitLab