Re: [PATCH v3 07/17] Misc switch_back_to_stepped_thread cleanups

Doug Evans
2015-04-22T05:23:24Z

Pedro Alves writes:
> [...] it isn't ever correct to pass step=1 to target_resume
> on software single-step targets [...]

Sounds like a good thing to document in a comment or assert.
Can do?

> , and currently_stepping works at a
> conceptual higher level, it returns step=true even on software step
> targets. It doesn't really matter on hardware step targets, as the
> breakpoint will be hit immediately, but it's just wrong on software
> step targets. I tested it against my x86 software single-step branch,
> and it indeed fixes failed assertions (that catch spurious
> PTRACE_SINGLESTEP requests) there.
>
> gdb/ChangeLog:
> 2015-04-17 Pedro Alves <palves@redhat.com>
>
> * infrun.c (switch_back_to_stepped_thread): Use ecs->ptid instead
> pf inferior_ptid. If the stepped thread vanished, return 0
> instead of resuming here. Use reset_ecs. Print the prev_pc and
> the current stop_pc in log message. Clear trap_expected if the
> thread advanced. Don't pass currently_stepping to
> do_target_resume.
>...