Roland McGrath wrote:
[...]

What's supposed to happen is that ptrace_resume uses ptrace_set_action to
store UTRACE_SINGLESTEP.  It then actually passes UTRACE_REPORT or
UTRACE_INTERRUPT to utrace_control (for the reasons explained in the
comments in the code for each of those cases).

The child should then get into either ptrace_report_quiesce or
ptrace_report_signal (ptrace_resumed case).  These both use
ptrace_resume_action to extract what was saved by ptrace_set_action, which
should still be UTRACE_SINGLESTEP.  Then whichever of these callbacks it is
should return that value, UTRACE_SINGLESTEP.  It's that return value that
is what should ensure that user_enable_single_step actually happens (in
utrace.c:finish_resume_report).

I'm not entirely sure I understood your description of what you see
happening.  But perhaps you can figure out exactly where it differs from
what I've described that I think it should do.


Thanks,
Roland

Understood.
The test step-simple can pass on 2.6.29-rc1+utrace(11 Jan). Seems the regression has been fixed.

Regards,
Wenji

Reply via email to