Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Mar 2, 2011
  1. reptyr 0.2

  2. Merge branch 'attach-fds'

Commits on Feb 24, 2011
Commits on Feb 23, 2011
  1. @pozdnychev

    fix: avoid memory leakage in case realloc() fails

    pozdnychev authored committed
    [ Change error handling slightly]
Commits on Feb 20, 2011
  1. Be smarter about choosing which fd's to attach.

    Instead of using readlink, stat() the child's file descriptors and
    compare the result to the device in /proc/$pid/stat and /dev/tty. This
    lets us properly attach a 'less' that is taking input from a pipe.
Commits on Feb 19, 2011
Commits on Feb 12, 2011
Commits on Feb 4, 2011
Commits on Jan 28, 2011
  1. Explicitly CONT the child on attach, and then STOP/CONT after attach.

    The explicit CONT on attach is needed in order for wait() to work on
    older kernels, and the STOP/CONT after attach is better at making bash
    notice the process is running again.
  2. Add a version number.

  3. Merge branch 'force-bg'

  4. Prefer mmap2() if present.

    i386 has an mmap(), but mmap2() is the one we want with the right
    calling convention.
Commits on Jan 27, 2011
  1. Initial ARM support.

    Thanks to Josh Dick for providing access to an ARM test and dev machine.
  2. Refactor architecture-dependent headers slightly.

    Start isolating x86-generic features into a common x86 header.
Commits on Jan 25, 2011
  1. Send the child an explicit SIGCONT once we're done.

    This causes bash to notice that the process is backgrounded, which prevents it
    from sending a SIGTERM when the original shell exits.
  2. Copy the termios settings before we background the target process.

    If the target /doesn't/ properly initialize the terminal after a
    SIGTSTP/continue (I'm looking at you, emacs), we need to be sure to grab the
    terminal state before we suspend it and the shell resets the terminal to cooked
  3. Use wait4 instead of waitid().

    waitid() seems to return EINVAL sometimes, for reasons I don't understand.
  4. Try to stop the target with SIGTSTP before attaching.

    This should both cause the target process to redraw / reinitialize the
    terminal (since it thinks it's been backgrounded and restarted), and should give
    you back the old terminal, since it sees the process now running in the
Commits on Jan 24, 2011
  1. Define some ptrace constants on platforms where ptrace.h is missing t…

    RHEL 5, in particular, supports all the options we need, but doesn't define them
    in userspace's ptrace.h.
Commits on Jan 23, 2011
  1. Don't clear c_cflag when setting raw mode on our tty.

    This makes tcsetattr return EINVAL on some systems, and there
    shouldn't be any flags in there we care about.
Something went wrong with that request. Please try again.