step_sp = read_sp ();
step_once (int skip_subroutines, int single_inst, int count){   struct continuation_arg *arg1;   struct continuation_arg *arg2;  struct continuation_arg *arg3;   struct frame_info *frame;  if (count > 0)    {      clear_proceed_status ();      frame = get_current_frame ();      if (!frame)		/* Avoid coredump here.  Why tho? */	error ("No current frame");      step_frame_id = get_frame_id (frame);      step_sp = read_sp ();      if (!single_inst)	{	  find_pc_line_pc_range (stop_pc, &step_range_start, &step_range_end);	  /* If we have no line info, switch to stepi mode.  */	  if (step_range_end == 0 && step_stop_if_no_debug)	    {	      step_range_start = step_range_end = 1;	    }	  else if (step_range_end == 0)	    {	      char *name;	      if (find_pc_partial_function (stop_pc, &name, &step_range_start,					    &step_range_end) == 0)		error ("Cannot find bounds of current function");	      target_terminal_ours ();	      printf_filtered ("\Single stepping until exit from function %s, \n\which has no line number information.\n", name);	    }	}      else	{	  /* Say we are stepping, but stop after one insn whatever it does.  */	  step_range_start = step_range_end = 1;	  if (!skip_subroutines)	    /* It is stepi.	       Don't step over function calls, not even to functions lacking	       line numbers.  */	    step_over_calls = STEP_OVER_NONE;	}      if (skip_subroutines)	step_over_calls = STEP_OVER_ALL;      step_multi = (count > 1);      arg1 =	(struct continuation_arg *) xmalloc (sizeof (struct continuation_arg));      arg2 =	(struct continuation_arg *) xmalloc (sizeof (struct continuation_arg));      arg3 =	(struct continuation_arg *) xmalloc (sizeof (struct continuation_arg));      arg1->next = arg2;      arg1->data.integer = skip_subroutines;      arg2->next = arg3;      arg2->data.integer = single_inst;      arg3->next = NULL;      arg3->data.integer = count;      add_intermediate_continuation (step_1_continuation, arg1);      proceed ((CORE_ADDR) -1, TARGET_SIGNAL_DEFAULT, 1);    }}