Using GDB on a program that forks
Using GDB to debug a program that forks will automatically follow the parent process, just like a regular non-forking program. But it's possible to follow the child process instead, which is what we will learn in this recipe.
Being able to follow the child process is important in debugging since many programs spawn child processes. We don't want to limit ourselves to only non-forking programs.
For this recipe, you'll need the Makefile from the Starting GDB recipe in this chapter, the Make tool, and the GCC compiler.
How to do it…
In this recipe, we'll write a small program that forks. We'll put a
for loop inside the child to confirm whether we are inside the child or the parent. On the first run in GDB, we'll run through the program like we usually would. This will make GDB follow the parent process. Then, in the next run, we'll follow the child process instead:
- Write the...