anchor.diff:  
   %% API
   -export([tracer/0,tracer/1,tracer/2,p/2,stop/0,stop/1,start_trace/4]).
  +-export([get_et_handler/0]).
   -export([tp/2, tp/3, tp/4, ctp/0, ctp/1, ctp/2, ctp/3, tpl/2, tpl/3, tpl/4, 
   	 ctpl/0, ctpl/1, ctpl/2, ctpl/3, ctpg/0, ctpg/1, ctpg/2, ctpg/3]).
   -export([seq_trigger_ms/0,seq_trigger_ms/1]).
  
positive.code:     end.
  
  do_format(Fd,Details,DisableSort,Handler) ->
      EmptyHandler = {fun(_,_,_,_) -> ok end, ok},
      EtHandler = {{ttb_et, handler}, initial},
      Clients = lists:foldl(fun({FileOrWrap,Traci,et},Acc) ->
  				  [start_client(FileOrWrap,Traci,EtHandler)|Acc];
                               ({FileOrWrap,Traci,_},Acc) ->
  				  [start_client(FileOrWrap,Traci,EmptyHandler)|Acc]
  			  end,[],Details),
      init_collector(Fd,Clients,DisableSort,Handler).
  
  
  start_client(FileOrWrap,Traci,Handler) ->
      dbg:trace_client(file, FileOrWrap, 
  		     {fun handler/2, {dict:to_list(Traci), Handler}}).
  handler(Trace,State) ->
      %% State here is only used for the initial state. The accumulated
      %% State is maintained by collector!!!
      receive 
  	{get,Collector} -> Collector ! {self(),{Trace,State}};
  	done -> ok
      end,
      State.
  
  handler1(Trace,{Fd,{Traci,{Fun,State}}}) when is_function(Fun) ->
      {Traci,{Fun,Fun(Fd,Trace,Traci,State)}};
  handler1(Trace,{Fd,{Traci,{{M,F},State}}}) when is_atom(M), is_atom(F) ->
      {Traci,{{M,F},M:F(Fd,Trace,Traci,State)}}.
  
  %%Used to handle common state (the same for all clients)
  handler2(Trace,{Fd,Traci,{Fun,State}}) when is_function(Fun) ->
  
negative.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%% Format binary trace logs
  get_et_handler() ->
      {fun ttb_et:handler/4, initial}.
  
  format(Files) ->
      format(Files,[]).
  format(Files,Opt) ->
  