* 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:
Yao Qi
2011-09-07 14:24:48 +00:00
parent 28942f6293
commit ede1849f92
3 changed files with 10 additions and 47 deletions

View File

@@ -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

View 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

View 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