Based on the title of the article, I expected it to describe very general principles for writing debuggers, but it seems very specific to gdb. Are things similar in, say, Python or Java?
covers this topic, as well as writing a debugger, and basic fuzzing.