Analysis of SINGLESTEP

Wenji Huang wenji.huang at oracle.com
Tue Jan 13 05:40:56 UTC 2009


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




More information about the utrace-devel mailing list