gdb/
authorYao Qi <yao@codesourcery.com>
Wed, 7 Sep 2011 14:24:48 +0000 (14:24 +0000)
committerYao Qi <yao@codesourcery.com>
Wed, 7 Sep 2011 14:24:48 +0000 (14:24 +0000)
* gdbthread.h (struct thread_info): Remove fields
`stepping_through_solib_after_catch' and
`stepping_through_solib_catchpoints'.
* infrun.c (init_thread_stepping_state): Update.
(process_event_stop_test, currently_stepping): Update.
(currently_stepping_or_nexting_callback): Update.

gdb/ChangeLog
gdb/gdbthread.h
gdb/infrun.c

index 584959d..43d4a06 100644 (file)
@@ -1,5 +1,14 @@
 2011-09-07  Yao Qi  <yao@codesourcery.com>
 
+       * gdbthread.h (struct thread_info): Remove fields
+       `stepping_through_solib_after_catch' and
+       `stepping_through_solib_catchpoints'.
+       * infrun.c (init_thread_stepping_state): Update.
+       (process_event_stop_test, currently_stepping): Update.
+       (currently_stepping_or_nexting_callback): Update.
+
+2011-09-07  Yao Qi  <yao@codesourcery.com>
+
        * gdbthread.h (struct thread_info): Comment on field
        `step_after_step_resume_breakpoint'.
 
index 6baeb92..6011087 100644 (file)
@@ -186,17 +186,6 @@ struct thread_info
      when GDB gets back SIGTRAP from step_resume_breakpoint.  */
   int step_after_step_resume_breakpoint;
 
-  /* This is set TRUE when a catchpoint of a shared library event
-     triggers.  Since we don't wish to leave the inferior in the
-     solib hook when we report the event, we step the inferior
-     back to user code before stopping and reporting the event.  */
-  int stepping_through_solib_after_catch;
-
-  /* When stepping_through_solib_after_catch is TRUE, this is a
-     list of the catchpoints that should be reported as triggering
-     when we finally do stop stepping.  */
-  bpstat stepping_through_solib_catchpoints;
-
   /* Per-thread command support.  */
 
   /* Pointer to what is left to do for an execution command after the
index 8846cdf..2b4f6db 100644 (file)
@@ -2853,8 +2853,6 @@ init_thread_stepping_state (struct thread_info *tss)
 {
   tss->stepping_over_breakpoint = 0;
   tss->step_after_step_resume_breakpoint = 0;
-  tss->stepping_through_solib_after_catch = 0;
-  tss->stepping_through_solib_catchpoints = NULL;
 }
 
 /* Return the cached copy of the last pid/waitstatus returned by
@@ -4553,37 +4551,6 @@ process_event_stop_test:
        }
     }
 
-  /* Are we stepping to get the inferior out of the dynamic linker's
-     hook (and possibly the dld itself) after catching a shlib
-     event?  */
-  if (ecs->event_thread->stepping_through_solib_after_catch)
-    {
-#if defined(SOLIB_ADD)
-      /* Have we reached our destination?  If not, keep going.  */
-      if (SOLIB_IN_DYNAMIC_LINKER (PIDGET (ecs->ptid), stop_pc))
-       {
-          if (debug_infrun)
-           fprintf_unfiltered (gdb_stdlog,
-                               "infrun: stepping in dynamic linker\n");
-         ecs->event_thread->stepping_over_breakpoint = 1;
-         keep_going (ecs);
-         return;
-       }
-#endif
-      if (debug_infrun)
-        fprintf_unfiltered (gdb_stdlog, "infrun: step past dynamic linker\n");
-      /* Else, stop and report the catchpoint(s) whose triggering
-         caused us to begin stepping.  */
-      ecs->event_thread->stepping_through_solib_after_catch = 0;
-      bpstat_clear (&ecs->event_thread->control.stop_bpstat);
-      ecs->event_thread->control.stop_bpstat
-       = bpstat_copy (ecs->event_thread->stepping_through_solib_catchpoints);
-      bpstat_clear (&ecs->event_thread->stepping_through_solib_catchpoints);
-      stop_print_frame = 1;
-      stop_stepping (ecs);
-      return;
-    }
-
   if (ecs->event_thread->control.step_resume_breakpoint)
     {
       if (debug_infrun)
@@ -5143,7 +5110,6 @@ currently_stepping (struct thread_info *tp)
   return ((tp->control.step_range_end
           && tp->control.step_resume_breakpoint == NULL)
          || tp->control.trap_expected
-         || tp->stepping_through_solib_after_catch
          || bpstat_should_step ());
 }
 
@@ -5157,8 +5123,7 @@ currently_stepping_or_nexting_callback (struct thread_info *tp, void *data)
     return 0;
 
   return (tp->control.step_range_end
-         || tp->control.trap_expected
-         || tp->stepping_through_solib_after_catch);
+         || tp->control.trap_expected);
 }
 
 /* Inferior has stepped into a subroutine call with source code that