Re: ptrace single-stepping change breaks Wine

Davide Libenzi
2004-12-31T15:16:12Z

On Fri, 31 Dec 2004, Andi Kleen wrote:

> > - you couldn't even debug signal handlers, because they were _really_
> > hard to get into unless you knew where they were and put a breakpoint
> > on them.
>
> Ok I see this as being a problem. But I bet it could be fixed
> much simpler without doing all this complicated and likely-to-be-buggy
> popf parsing you added.

I don't think that the Wine problem resolution is due to the POPF
instruction handling. Basically Linus patch does a nice cleanup plus POPF
handling, so maybe the patch can be split.

> > - you couldn't see the instruction after a system call.
>
> Are you sure?

Yes, this was true with 2.4. Than it has been fixed some time ago. But
handling that revealed a fragile handling of ptrace event delivery we had
in do_syscall_trace(). Part of the Linus patch tries to solve the fact
that on one side strace wants things to happen in a certain way, way that
seem to break Wine. I think Linus cleanup of the ptrace event delivery can
get strace, Wine and single-step-after-syscall right, w/out POPF handling.
Then you guys can flame each other over the POPF handling ;)

- Davide