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    [W:2.515 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site