lkml.org 
[lkml]   [2004]   [Dec]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: ptrace single-stepping change breaks Wine
On Thu, Dec 30, 2004 at 03:17:01PM -0800, Linus Torvalds wrote:
>
>
> On Thu, 30 Dec 2004, Daniel Jacobowitz wrote:
> >
> > does not look right to me. Before, we'd get an 0x80|SIGTRAP result
> > from wait. Now, you've moved the 0x80 to live only inside the siginfo.
> > This is accessible to the debugger via ptrace, but only very recently
> > (late 2.5.x). So this will probably break users of PT_TRACESYSGOOD.
>
> I don't see how to easily emulate the old behaviour 100% - see
> ptrace_notify. We always sent the signal SIGTRAP to the process, and then
> set "exit_code" tp have the 0x80 marker by calling ptrace_stop() by hand.
> However, if we make it a real signal (which we need to do to get the
> continue semantics right), we no longer have that out-of-band info
> available to us.
>
> We could make "get_signal_to_deliver()" pass in some other exit_code to
> ptrace_stop() than just signr. It would have to pick it up from the
> siginfo structure, but then we'd have to make sure that _other_ signal
> users do that properly..
>
> Patches/suggestions welcome.

Well, you put SIGTRAP|0x80 in si_code. Coincidentally, 0x80 is
SI_KERNEL. So testing for SI_KERNEL | 0x80 is probably OK in the
signal path, since most of its other arbitrary values would be either
negative or not include SI_KERNEL.
--
Daniel Jacobowitz
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:09    [from the cache]
©2003-2011 Jasper Spaans