anchor.diff:          false -> State
       end;
   eval_cmd("stop\n", State) -> stop_probe(State);
  +eval_cmd("gui\n", State) -> gui(State);
  +eval_cmd("gui " ++ ParamStr, State) -> gui(ParamStr, State);
   eval_cmd("help\n", State) -> help(State);
   eval_cmd("help " ++ ParamStr, State) -> help(ParamStr, State);
   eval_cmd(Line, State) -> invalid_input(Line, State).
  
positive.code:               "      see above for params and options\n"
                "  run\n"
                "  stop\n"
                "  quit\n",
                [?PARAMS_STR, opts_str()]),
      State.
  
negative.code:             end
      end.
  
  error_string({_Loc, erl_scan,_Error}) -> "parse error";
  error_string({_Loc,_Mod, Error}) -> Error.
  
  
  gui(#state{options = Options} = State) ->
      DumpFile = ds_opts:getopt(dump, Options),
      start_gui(DumpFile, State).
  
  gui(ParamStr, State) ->
      case parse_term(ParamStr) of
          {ok, DumpFile} -> start_gui(DumpFile, State);
          {error, ReasonStr} -> io:format("~s~n", [ReasonStr]),
                                State
      end.
  
  start_gui(DumpFile, State) ->
      case filelib:is_regular(DumpFile) of
          true -> ds_gui:start(DumpFile);
          false -> io:format("Cannot access dump file: ~p~n", [DumpFile])
      end,
      State.
  
  
  run_probe(#state{type = Type, table = Table, field = Field, attrs = Attrs,
  