'What does 'inferior' mean in the term 'inferior debugger'?

I didn't really understand the explanation for inferior in the GDB manual, and google doesn't yield anything more helpful.

Can anyone explain 'inferior' in simple terms?

gdb


Solution 1:[1]

"Inferior" is a general term to mean "something that you are using gdb to debug" -- generally a process or perhaps a kernel running on an emulator or on some other piece of hardware connected on a serial line.

The term "Inferior debugger" comes up when you are using gdb to debug gdb. That is, you have TWO gdb processes running, one of which (the main gdb) is watching and controlling (setting breakpoints, single stepping, etc) the second (the "inferior debugger"). The inferior debugger is itself probably controlling some other program.

Solution 2:[2]

In gdb, "inferior" refers to the process that you're debugging. E.g.

(gdb) help info inferiors 
IDs of specified inferiors (all inferiors if no argument).

(gdb) info inferiors 
  Num  Description       Executable        
* 1    process 12858     /usr/bin/true

gdb can now debug multiple processes at once, so it has a command to switch between inferiors similar to how you can switch between threads.

(gdb) help inferior 
Use this command to switch between inferiors.
The new inferior ID must be currently known.

Most of the commands in the Inferiors Connections and Programs section of the manual deals with debugging multiple processes concurrently.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Chris Dodd
Solution 2 AlexF