Trace exception local variables and args per frame

New configuration options and defaults
config.locals.enabled = off
config.locals.max_trace_frames = 100

Turned off by default because this may not be performant just yet!

  1. Stores each Ruby process' local vars and method arguments
  2. When gathering exception data, "replay" over each frame to get the variables for that frame's context
  3. Dump the cache and repeat
Do you know how this works with threads? i.e. if there are multiple threads running, will all of them result in calls to this same proc?