From 52b8502061b35d576185cd384f6e5805315db927 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Thu, 18 Oct 2007 13:49:51 +0000 Subject: [PATCH] FIX #1450: asynchronous exceptions are now printed by +RTS -xc --- rts/RaiseAsync.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/rts/RaiseAsync.c b/rts/RaiseAsync.c index bb244d8..73c4429 100644 --- a/rts/RaiseAsync.c +++ b/rts/RaiseAsync.c @@ -17,6 +17,7 @@ #include "Updates.h" #include "STM.h" #include "Sanity.h" +#include "Profiling.h" #if defined(mingw32_HOST_OS) #include "win32/IOManager.h" #endif @@ -852,6 +853,18 @@ raiseAsync(Capability *cap, StgTSO *tso, StgClosure *exception, debugTrace(DEBUG_sched, "raising exception in thread %ld.", (long)tso->id); +#if defined(PROFILING) + /* + * Debugging tool: on raising an exception, show where we are. + * See also Exception.cmm:raisezh_fast. + * This wasn't done for asynchronous exceptions originally; see #1450 + */ + if (RtsFlags.ProfFlags.showCCSOnException) + { + fprintCCS_stderr(tso->prof.CCCS); + } +#endif + // mark it dirty; we're about to change its stack. dirtyTSO(tso); -- 1.7.10.4