summaryrefslogtreecommitdiff
path: root/gdb/thread.c
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2010-11-28 04:33:45 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2010-11-28 04:33:45 +0000
commit3d2e431c087213db1819fd1f79ec6f1615bb11b2 (patch)
tree12bca944608006454307b03c8db96c5b3c301a0f /gdb/thread.c
parent7c77df928722862f8a421fa01d7d130536fcda28 (diff)
downloadgdb-3d2e431c087213db1819fd1f79ec6f1615bb11b2.tar.gz
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.
Diffstat (limited to 'gdb/thread.c')
-rw-r--r--gdb/thread.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gdb/thread.c b/gdb/thread.c
index 10c12318f2b..e23a784fc5c 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);