gdb can print parts of your program's source, since the debugging information recorded in the program tells gdb what source files were used to build it. When your program stops, gdb spontaneously prints the line where it stopped. Likewise, when you select a stack frame (see Selecting a Frame), gdb prints the line where execution in that frame has stopped. You can print other portions of source files by explicit command.
If you use gdb through its gnu Emacs interface, you may prefer to use Emacs facilities to view source; see Using gdb under gnu Emacs.