anchor.diff:  %     Options, _Slowest = 0.0,
        _BPs = [], _BPActive = false,
        _BPHoldbackQueue = [], _BPStepped = false,
  -     _BPStepperPid = unknown
  +     _BPStepperPid = unknown,
  +     _ExcSubs = []
       }.
   gc_mod(State) ->                element(?MOD, State).
   gc_hand(State) ->               element(?HAND, State).
   gc_set_hand(State, Handler) ->  setelement(?HAND, State, Handler).
  +gc_exc_subs(State) ->           element(?EXC_SUBS, State).
  +gc_set_exc_subs(State, Subs) -> setelement(?EXC_SUBS, State, Subs).
   %% opts
   %% slowest
   -spec gc_bps(gc_state()) -> [bp()].
  
positive.code:           boolean(),          %% bp active?
            [bp_msg()],         %% queued bp messages
            boolean(),          %% bp stepped?
            pid() | unknown     %% bp stepper
          }.
  
  %% define macros for the tuple positions to use them also in guards.
  
negative.code:                           UState ->
                                DefaultHandler
                        end,
              T2State = case lists:keyfind(exception_subscription, 1, Options) of
                            {exception_subscription, Subs} ->
                                gc_set_exc_subs(T1State, Subs);
                            _ ->
                                T1State
                        end,
              {UState, gc_set_hand(T2State, Handler)}
          catch
              % If init throws up, send 'started' to the supervisor but exit.
              % The supervisor will try to restart the process as it is watching
  