Re: ptrace single-stepping change breaks Wine

From: Linus Torvalds
Date: Wed Dec 29 2004 - 13:56:48 EST




On Wed, 29 Dec 2004, Mike Hearn wrote:
>
> I can't see if he CCd anybody from the archives but Jesse Allen posted a
> nice analysis of the remaining problem here:
>
> http://www.winehq.org/hypermail/wine-devel/2004/12/0691.html

Ok, I don't remember the context from the Wine lists (and it's not clear
from the older emails I was cc'd on), so the "#3 signal.c" change
description is a bit too vague. Jesse, willing to just point to the exact
diff that you need to make Warcraft work for you (and then maybe Thomas
Sailer can verify whether that part is indeed the one that causes him
problems).

The code in question now does

/*
* Iff TF was set because the program is being single-stepped by a
* debugger, don't save that information on the signal stack.. We
* don't want debugging to change state.
*/
eflags = regs->eflags;
if (current->ptrace & PT_DTRACE)
eflags &= ~TF_MASK;
err |= __put_user(eflags, &sc->eflags);

and I guess it originally never cleared it. True?

So does removing the conditional TF clear make everything work again?

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/