ptrace single-stepping change breaks Wine

Eric Pouech pouech-eric at wanadoo.fr
Fri Nov 19 14:41:44 CST 2004


> Btw, does wine ever _use_ PTRACE_SINGLESTEP for any of the things it does?
> 
> If it does, then that woulc certainly explain why my "fix" made no 
> difference: my fix _only_ handles the case where the ptracer never 
> actually asks for single-stepping, and single-stepping was started 
> entirely by the program being run (ie by setting TF in eflags from within 
> the program itself).
> 
> But if wine ends up using PTRACE_SINGESTEP because wine actually wants to 
> single-step over some instructions, then the kernel will set the PT_DTRACE 
> bit, and start tracing through signal handlers too. The way Wine doesn't 
> want..

wine mixes both approches, we have (to control what's generated inside the 
various exception) to ptrace from our NT-kernel-like process (the ptracer) to 
get the context of the exception. Restart from the ptracer is done with 
PTRACE_SINGLESTEP.

(BTW: I also CC:ed wine-devel ML, that might be of interest to them too)

A+



More information about the wine-devel mailing list