anchor.diff:  on({sample_all}, State) -> State;
   
   %% gather information on a single pid for periodic statistical output
  -on({sample_pid, Pid}, State) when pid =:= element(2, State) ->
  +on({sample_pid, Pid}, State) when is_pid(element(2, State)) ->
       TableName = table(State),
       NewVals = try_process_info(
                   Pid,
  -                [message_queue_len, status, current_function, backtrace]),
  +                [message_queue_len, status]),
       TakeVals = case process_info_get(NewVals, status, dead_pid) of
                      running -> true;
                      runnable -> true;
                      _ -> false
                  end,
  +    %% comm:send_local_after(1, self(), {sample_pid, Pid}),
  +    comm:send_local(self(), {sample_pid, Pid}),
       case TakeVals of
           true ->
  -            P = {Pid, process_info_get(NewVals, current_function, dead)},
  +            %P = {Pid, process_info_get(NewVals, current_function, dead)},
  +            P = {Pid, erlang:get(current_function)},
               Entry = pdb:get(P, TableName),
               case Entry of
                   undefined ->
  
positive.code:     MemUsage = process_info_get(Infos, memory, 0),
      HeapSize = process_info_get(Infos, total_heap_size, 0),
      StackSize = process_info_get(Infos, stack_size, 0),
      PDSize = case PD of
                   0 -> 0;
                   _ -> erlang:external_size(PD)
               end,
      WordSize = erlang:system_info(wordsize),
      io:format("Mem: ~s total, ~s heap, ~s stack, ~s dictionary (~p entries)~n",
                [readable_mem(MemUsage),
  
negative.code:         end,
      setelement(3, Entry, NewStatus).
  
  pdbe_new(Pid, Vals) ->
      Entry = {Pid,
               process_info_get(Vals, message_queue_len, 0),
  