GDB is a source-level debugger for compiled languages, primarily C and C++, although there is also support for a variety of other languages such as Go and Objective-C. You should read the notes for the version of GDB you are using to find out the current status of support for the various languages.
The project website is http://www.gnu.org/software/gdb and it contains a lot of useful information, including the GDB User Manual, Debugging with GDB.
Out of the box, GDB has a command-line user interface, which some people find off-putting, although in reality, it is easy to use with a little practice. If command-line interfaces are not to your liking, there are plenty of front-end user interfaces to GDB, and I will describe three of them later.