2004-05-14 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Fri, 14 May 2004 18:45:42 +0000 (18:45 +0000)
committerAndrew Cagney <cagney@redhat.com>
Fri, 14 May 2004 18:45:42 +0000 (18:45 +0000)
* infrun.c (handle_inferior_event): Simplify
STEP_OVER_UNDEBUGGABLE.

gdb/ChangeLog
gdb/infrun.c

index 264cb5fe3ee2a83c6dc905f3c5a0fa90b06aeff2..4d4c67ec6e2440a663504c3799405b5eae105611 100644 (file)
@@ -1,5 +1,8 @@
 2004-05-14  Andrew Cagney  <cagney@redhat.com>
 
+       * infrun.c (handle_inferior_event): Simplify
+       STEP_OVER_UNDEBUGGABLE.
+
        * infrun.c (handle_step_into_function): Delete function.
        (handle_inferior_event): Inline calls to
        handle_step_into_function.
index aaff0d02436fe7dac3396e7a9e1ffd966074c6b5..3834cd820bda4aeae91ff5140d5ee27fcafc5fef 100644 (file)
@@ -2353,82 +2353,25 @@ process_event_stop_test:
          inferior stopped).  Since we want to skip this kind of code,
          we keep going until the inferior returns from this
          function.  */
-      /* NOTE: cagney/2004-05-12: This test is performed after the
-        sigtramp test as often sigtramps, while recognized by GDB,
-        have no symbol information.  */
-      CORE_ADDR real_stop_pc;
-       
-      if ((step_over_calls == STEP_OVER_NONE)
-         || ((step_range_end == 1)
-             && in_prologue (prev_pc, ecs->stop_func_start)))
+      if (step_stop_if_no_debug)
        {
-         /* I presume that step_over_calls is only 0 when we're
-            supposed to be stepping at the assembly language level
-            ("stepi").  Just stop.  */
-         /* Also, maybe we just did a "nexti" inside a prolog, so we
-            thought it was a subroutine call but it was not.  Stop as
-            well.  FENN */
+         /* If we have no line number and the step-stop-if-no-debug
+            is set, we stop the step so that the user has a chance to
+            switch in assembly mode.  */
          stop_step = 1;
          print_stop_reason (END_STEPPING_RANGE, 0);
          stop_stepping (ecs);
          return;
        }
-       
-      if (step_over_calls == STEP_OVER_ALL || IGNORE_HELPER_CALL (stop_pc))
+      else
        {
-         /* We're doing a "next", set a breakpoint at callee's return
-            address (the address at which the caller will
-            resume).  */
+         /* Set a breakpoint at callee's return address (the address
+            at which the caller will resume).  */
          insert_step_resume_breakpoint (get_prev_frame (get_current_frame ()),
                                         ecs);
          keep_going (ecs);
          return;
        }
-      
-      /* If we are in a function call trampoline (a stub between the
-        calling routine and the real function), locate the real
-        function.  That's what tells us (a) whether we want to step
-        into it at all, and (b) what prologue we want to run to the
-        end of, if we do step into it.  */
-      real_stop_pc = skip_language_trampoline (stop_pc);
-      if (real_stop_pc == 0)
-       real_stop_pc = SKIP_TRAMPOLINE_CODE (stop_pc);
-      if (real_stop_pc != 0)
-       ecs->stop_func_start = real_stop_pc;
-      
-      /* If we have line number information for the function we are
-        thinking of stepping into, step into it.
-
-        If there are several symtabs at that PC (e.g. with include
-        files), just want to know whether *any* of them have line
-        numbers.  find_pc_line handles this.  */
-      {
-       struct symtab_and_line tmp_sal;
-       
-       tmp_sal = find_pc_line (ecs->stop_func_start, 0);
-       if (tmp_sal.line != 0)
-         {
-           step_into_function (ecs);
-           return;
-         }
-      }
-      
-      /* If we have no line number and the step-stop-if-no-debug is
-        set, we stop the step so that the user has a chance to switch
-        in assembly mode.  */
-      if (step_over_calls == STEP_OVER_UNDEBUGGABLE && step_stop_if_no_debug)
-       {
-         stop_step = 1;
-         print_stop_reason (END_STEPPING_RANGE, 0);
-         stop_stepping (ecs);
-         return;
-       }
-      
-      /* Set a breakpoint at callee's return address (the address at
-        which the caller will resume).  */
-      insert_step_resume_breakpoint (get_prev_frame (get_current_frame ()), ecs);
-      keep_going (ecs);
-      return;
     }
 
   if (frame_id_eq (frame_unwind_id (get_current_frame ()),