Here's my problem:

  I am running a multi threaded application on gsi.

  Thread X executes thunk THUNK.

  if THUNK throws an exception, I want to be able to use the repl to jump into thread X and see what is wrong (and have the whole interactive repl debugger at my finger tips).

  However, I also want to profile THUNK. Thus, before THUNK starts, I want to run (profile-start!) and when THUNK finishes (or if an exception is thrown), I want it to call (profile-stop!)

  Here now is the problem ... if I don't catch the exception (and allow myself to debug it at the GSI), my profiler will colelct data of me sitting at the REPl debugging.

  On the toher hand, if I catch the exception to call (profile-stop!), I no longer know how I can debug the exception at the REPL. How do I get around this?

Thanks!