lkml.org 
[lkml]   [1999]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] Re: Tracing of vfork
    Here is a patch that will allow, on x86, debuggers to change the number
    of a system call when they trace it. This is useful for:

    * Changing a call that can't be handled by the debugger into a similar
    one that can. (The example which started this was vfork, which can be
    changed into fork.)

    * Vetoing a system call altogether.

    * Probably some other things I haven't thought of yet. :)

    Sorry it took so long to create such a trivial thing; I've been rather
    busy. Thanks to Michael Chastain <mec@shout.net> for suggesting this
    implementation (essentially writing it).

    I would like to propose that it be added to the standard kernel so that
    everyone can take advantage of the features it will allow in strace.
    Comments are welcome.

    People familiar with other architectures may wish to submit similar
    changes for their platforms. x86 is all I know, sorry!

    Patch follows.

    --- arch/i386/kernel/entry.S~ Sun Feb 7 13:12:48 1999
    +++ arch/i386/kernel/entry.S Sat Mar 20 16:01:17 1999
    @@ -214,8 +214,11 @@
    movl $-ENOSYS,EAX(%esp)
    call SYMBOL_NAME(syscall_trace)
    movl ORIG_EAX(%esp),%eax
    + cmpl $(NR_syscalls),%eax
    + jae tracesys_exit
    call *SYMBOL_NAME(sys_call_table)(,%eax,4)
    movl %eax,EAX(%esp) # save the return value
    +tracesys_exit:
    call SYMBOL_NAME(syscall_trace)
    jmp ret_from_sys_call
    badsys:
    --- arch/i386/kernel/ptrace.c~ Sun Feb 7 13:12:27 1999
    +++ arch/i386/kernel/ptrace.c Sat Mar 20 15:38:30 1999
    @@ -289,8 +289,6 @@
    unsigned long regno, unsigned long value)
    {
    switch (regno >> 2) {
    - case ORIG_EAX:
    - return -EIO;
    case FS:
    if (value && (value & 3) != 3)
    return -EIO;
    --

    Nate Eldredge
    nate@cartsys.com

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

    \
     
     \ /
      Last update: 2005-03-22 13:50    [W:4.045 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site