GDB (also known as GNU Project debugger) is an open source and free command-line software that allows users and developers alike to see what is going on `inside' another program, while it is executed, or why an application is crashing at a certain point.
Features at a glance
Key features include four different techniques to help developers catch bugs in the act, start an application and specifying anything that might affect its behavior, make a program stop on specified conditions, examine the logs when the application crashed, gradually change things in a program in order to experiment with correcting the effects of one issue, and continue by learning about another bug. It also supports debugging of programs written in a wide range of programming languages, including C, C++, Pascal, Ada, Objective-C, and many others.
It’s a command-line application
GNU Project debugger is an will always be a command-line application. To use it, you must run the “gdb” command in a terminal emulator, then execute the “help” command (without quotes) a the gdb prompt. In addition, you can also type the “help all” command to view a list of all commands, type "help" followed by command name to view the complete documentation, type "help" followed by a class name to view a list of commands in that class, to type "apropos word" to search for commands related to "word."
List of classes of commands
After typing the “help” command as described above, you will see a list of classes of commands, including aliases (displays aliases of other commands), breakpoints (makes the program to stop at certain points), data (for examining data), files (for examining files), internals (maintenance commands), obscure (obscure features), running (for running the program), stack (for examining the stack), status (for status inquiries), support (for support facilities), tracepoints (for tracing program execution without stopping the program) and user-defined (user-defined commands).
Supported hardware platforms and OSes
GDB has been designed from the offset to be a cross-platform application, running on mainstream operating systems like Microsoft Windows and some of the most popular Linux/UNIX variants. It is supported on both 32-bit and 64-bit hardware platforms.