anchor.diff:      end.
   
   termify_line(L) ->
  -    [H|T] = re:split(L, " ", [{return,list}]),
  -    list_to_tuple([list_to_atom(H)|T]).
  +    [termify_token(Token) || Token <- re:split(L, " ", [{return,list}])].
  +
  +termify_token(L) ->
  +    try list_to_integer(L)
  +    catch error:badarg ->
  +            try list_to_pid(L)
  +            catch error:badarg -> L
  +            end
  +    end.
   
   ring_start(ProcNum) ->
       lists:sort([spawn(fun ring_proc/0) || _ <- lists:seq(1, ProcNum)]).
  
positive.code:     Sender2 = spawn(fun() -> send_n(6, 20), send_n(21, 30) end),
      DP = start_trace(
             count_messages_by_sender_with_reset_script([Sender1, Sender2])),
      ?wait_for({line, {start}}),
      Sender1 ! {start, Receiver},
      Sender2 ! {start, Receiver},
      {Sender1Str, Sender2Str} = {?p2l(Sender1), ?p2l(Sender2)},
      ?wait_for({line, {sent, "5", "from", Sender1Str}}),
      ?wait_for({line, {sent, "15", "from", Sender2Str}}),
      Sender2 ! {start, Receiver},
      receive {'DOWN', Ref, process, Receiver, normal} -> ok end,
      ?wait_for({line, {sent, "10", "from", Sender2Str}}),
      dyntrace_process:stop(DP),
      ?wait_for(eof),
      ?expect_not({line, {sent, _, _, _}}).
  
  count_messages_by_sender_and_receiver_test(_Config) ->
      {Receiver1, Ref1} = spawn_monitor(fun() -> receive_n(1, 30) end),
  
negative.code: 
  begin_tick_end_test(_Config) ->
      DP = start_trace(begin_tick_end_script()),
      ?wait_for({line, ["start"]}),
      ?wait_for({line, ["ticked"]}),
      ?wait_for({line, ["ticked"]}),
      ?wait_for({line, ["ticked"]}),
      dyntrace_process:stop(DP),
      ?wait_for(eof),
      ?expect({line, ["finish"]}).
  
  variable_test(_Config) ->
      Messages = ["aa", "bbbb"],
      {Receiver, Ref} = spawn_monitor(fun() -> receive_all(Messages) end),
      Sender = spawn(fun() -> send_all(Messages) end),
      DP = start_trace(variable_script(Sender)),
      ?wait_for({line, ["start"]}),
      Sender ! {start, Receiver},
      receive {'DOWN', Ref, process, Receiver, normal} -> ok end,
      [Size1, Size2] = [?msize(M) || M <- Messages],
      TotalSize = Size1 + Size2,
      ?wait_for({line, ["sent", Sender, Receiver, Size1]}),
      ?wait_for({line, ["sent", Sender, Receiver, Size2]}),
      dyntrace_process:stop(DP),
      ?wait_for(eof),
      ?expect({line, ["last", Sender, Receiver, Size2]}),
      ?expect({line, ["total", "num", 2, "size", TotalSize]}),
      ct:log("~p~n",[self()]).
  
  count_messages_by_sender_test(_Config) ->
      {Receiver, Ref} = spawn_monitor(fun() -> receive_n(1, 30) end),
      Sender1 = spawn(fun() -> send_n(1, 10) end),
      Sender2 = spawn(fun() -> send_n(11, 30) end),
      DP = start_trace(count_messages_by_sender_script([Sender1, Sender2])),
      ?wait_for({line, ["start"]}),
      Sender1 ! {start, Receiver},
      Sender2 ! {start, Receiver},
      receive {'DOWN', Ref, process, Receiver, normal} -> ok end,
      dyntrace_process:stop(DP),
      ?wait_for(eof),
      ?expect({line, ["sent", 10, "from", Sender1]}),
      ?expect({line, ["sent", 20, "from", Sender2]}),
      ct:log("~p~n",[self()]).
  
  count_messages_by_sender_with_reset_test(_Config) ->
      {Receiver, Ref} = spawn_monitor(fun() -> receive_n(1, 30) end),
  