Lately I have been very interested in putting faces and voices to words. After reading this article, which was over my head but I got a little out of it. I ended up reading Stephen Kell's homepage, which is crazy intense as far as academics go. He had a link to a video of his and I appreciated the quality and now have a face and voice to attach to the article, therefore will probably remember it better.
Damn, just over 5 minutes in we have a working live demo that you can also try. You attach gdb to a running process, in this case a GUI clock called xclock.
The video I linked to above is a great compliment to the linked article.
It's pretty simple, really. The process first calls fork() to create a child process. The child process then calls exec() to replace itself with another executable. This is the typical way you'd launch a process on any UNIX-like system. For example, it's how the shell will create a process when you issue a command.
tldr; Here is a video of the same guy who wrote this article ==> https://www.youtube.com/watch?v=LwicN2u6Dro
p.s. 5 minutes in and the talk is pretty good.