anchor.diff:      Pid ! {'$gen_component', bp, bp_set_cond, Cond, BPName},
       ok.
   
  --spec bp_del(Pid::comm:erl_local_pid(), BPName::any()) -> ok.
  +-spec bp_del(pid(), bp_name()) -> ok.
   bp_del(Pid, BPName) ->
       Pid ! {'$gen_component', bp, bp_del, BPName},
       ok.
   
  --spec bp_step(Pid::comm:erl_local_pid()) -> {module(), On::atom(), comm:message()}.
  +-spec bp_step(pid()) -> {module(), On::atom(), comm:message()}.
   bp_step(Pid) ->
       Pid !  {'$gen_component', bp, breakpoint, step, self()},
       receive {'$gen_component', bp, breakpoint, step_done,
  
positive.code:             wait_for_bp_leave(Message, State, NextCompState, true);
          {'$gen_component', bp, bp_del, BPName} ->
              NextCompState =
                  case bp_state_get_queue(BPState) of
                      {[_H|_T], false} -> gc_state_bp_hold_back(ComponentState, BPMsg);
                      _ -> gc_state_bp_del(ComponentState, BPName)
                  end,
              wait_for_bp_leave(Message, State, NextCompState, true)
      end.
  
  handle_unknown_event({web_debug_info, Requestor}, State, ComponentState, Module, On) ->
      GenCompInfo = lists:flatten(io_lib:format("~p", [State])),
      comm:send_local(Requestor, {web_debug_info_reply, 
                                  [{"generic info from gen_component:", ""},
                                   {"module", Module}, {"handler", On},
                                   {"state", GenCompInfo}]}),
  
negative.code:             {Module, On, Message}
      end.
  
  -spec bp_cont(pid()) -> ok.
  bp_cont(Pid) ->
      Pid !  {'$gen_component', bp, breakpoint, cont},
      ok.
  
  %% @doc delay further breakpoint requests until a breakpoint actually occurs
  -spec bp_barrier(pid()) -> ok.
  bp_barrier(Pid) ->
      Pid ! {'$gen_component', bp, barrier},
      ok.
  