GDB is a debugger program used to test and debug other programs. It allows the user to step through a program line-by-line, set breakpoints, view variable values and more. Some key features of GDB include setting breakpoints, running and stopping a program at specific points, examining variable values and execution flow. GDB can also be used for remote debugging where the program runs on one machine and GDB runs on another, connected machine.