From 8358c15c55744630cf69baf9acd134b8cc04e7c7 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Sun, 28 Nov 2010 04:33:47 +0000 Subject: gdb/ 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. --- gdb/thread.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'gdb/thread.c') diff --git a/gdb/thread.c b/gdb/thread.c index 10c1231..e23a784 100644 --- a/gdb/thread.c +++ b/gdb/thread.c @@ -83,10 +83,10 @@ inferior_thread (void) void delete_step_resume_breakpoint (struct thread_info *tp) { - if (tp && tp->step_resume_breakpoint) + if (tp && tp->control.step_resume_breakpoint) { - delete_breakpoint (tp->step_resume_breakpoint); - tp->step_resume_breakpoint = NULL; + delete_breakpoint (tp->control.step_resume_breakpoint); + tp->control.step_resume_breakpoint = NULL; } } @@ -97,10 +97,10 @@ clear_thread_inferior_resources (struct thread_info *tp) but not any user-specified thread-specific breakpoints. We can not delete the breakpoint straight-off, because the inferior might not be stopped at the moment. */ - if (tp->step_resume_breakpoint) + if (tp->control.step_resume_breakpoint) { - tp->step_resume_breakpoint->disposition = disp_del_at_next_stop; - tp->step_resume_breakpoint = NULL; + tp->control.step_resume_breakpoint->disposition = disp_del_at_next_stop; + tp->control.step_resume_breakpoint = NULL; } bpstat_clear (&tp->control.stop_bpstat); -- cgit v1.1