Fix step_resume_breakpoint unsaved during an infcall.
	* gdbthread.h (struct thread_control_state): Move here field
	step_resume_breakpoint ...
	(struct thread_info): ... from here.
	* infrun.c (save_infcall_control_state): Reset
	control.step_resume_breakpoint to NULL.
	(restore_infcall_control_state, discard_infcall_control_state): Delete
	control.step_resume_breakpoint.
	* arm-linux-tdep.c, infrun.c, thread.c: Update all the references to
	the moved field.

gdb/testsuite/
	Fix step_resume_breakpoint unsaved during an infcall.
	* gdb.base/step-resume-infcall.exp: New file.
	* gdb.base/step-resume-infcall.c: New file.
This commit is contained in:
Jan Kratochvil 2010-11-28 04:33:47 +00:00
parent 16c381f058
commit 8358c15c55
8 changed files with 163 additions and 32 deletions

View file

@ -37,6 +37,9 @@ struct thread_control_state
{
/* User/external stepping state. */
/* Step-resume or longjmp-resume breakpoint. */
struct breakpoint *step_resume_breakpoint;
/* Range to single step within.
If this is nonzero, respond to a single-step signal by continuing
@ -151,11 +154,6 @@ struct thread_info
call. See `struct thread_suspend_state'. */
struct thread_suspend_state suspend;
/* User/external stepping state. */
/* Step-resume or longjmp-resume breakpoint. */
struct breakpoint *step_resume_breakpoint;
int current_line;
struct symtab *current_symtab;