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.
This commit is contained in:
parent
16c381f058
commit
8358c15c55
8 changed files with 163 additions and 32 deletions
|
@ -791,7 +791,8 @@ arm_linux_copy_svc (struct gdbarch *gdbarch, uint32_t insn, CORE_ADDR to,
|
|||
fprintf_unfiltered (gdb_stdlog, "displaced: unwind pc = %lx. "
|
||||
"Setting momentary breakpoint.\n", (unsigned long) return_to);
|
||||
|
||||
gdb_assert (inferior_thread ()->step_resume_breakpoint == NULL);
|
||||
gdb_assert (inferior_thread ()->control.step_resume_breakpoint
|
||||
== NULL);
|
||||
|
||||
sal = find_pc_line (return_to, 0);
|
||||
sal.pc = return_to;
|
||||
|
@ -802,7 +803,7 @@ arm_linux_copy_svc (struct gdbarch *gdbarch, uint32_t insn, CORE_ADDR to,
|
|||
|
||||
if (frame)
|
||||
{
|
||||
inferior_thread ()->step_resume_breakpoint
|
||||
inferior_thread ()->control.step_resume_breakpoint
|
||||
= set_momentary_breakpoint (gdbarch, sal, get_frame_id (frame),
|
||||
bp_step_resume);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue