Playing with ptrace, Part II

In part two of our series on ptrace, find out how to set breakpoints and change the code of a running process on the fly.