forked from Imagelibrary/binutils-gdb
gdb/
* 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.
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
37
gdb/infrun.c
37
gdb/infrun.c
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user