Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: ATF tests hanging
On Dec 27, 7:53pm, martin%duskware.de@localhost (Martin Husemann) wrote:
-- Subject: Re: ATF tests hanging
| On Wed, Dec 27, 2017 at 02:51:38PM +0100, Martin Husemann wrote:
| > On Wed, Dec 27, 2017 at 08:42:52AM -0500, Christos Zoulas wrote:
| > > Well, it is not failing on sparc64, that's the issue.
| >
| > It is not expected to fail, but it is failing. The tracer process waits
| > for the child but the child does not exit - maybe the PT_CONTINUE did
| > not work or whatever.
|
| I am trying to understand what the test does. It still makes no sense to
| me and I completely fail to see how it can work anywhere.
|
| The test forks a child process and then:
|
| child:
| - ptrace(PT_TRACE_ME...)
| - blocks SIGTRAP
| - raises SIGSTOP
| - does a MD breakpoint instruction
| - exits
|
| apparently after assuming the tracing (parent) process has skipped the
| breakpoint instruction.
|
| parent:
| - waits for the child process to notify it of the SIGSTOP signal
| - ptrace(PT_CONTINUE, ..., (void *)1, ..)
|
| that is: continue where it left of, i.e. right on the breakpoint
| instruction. A real debugger would have removed the breakpoint
| instruction and replaced it by the original code (or suply a new value
| for %pc as address argument), but in this test this does not happen, so
| the child should hit a breakpoint right away again.
|
| I must be missing something, or the test works on alpha and x86 due to a
| bug, but correctly fails on other architectures.
I agree with the assessment.
christos
Home |
Main Index |
Thread Index |
Old Index