This document provides a tutorial on using the GNU Debugger (GDB) to debug C and C++ programs. It discusses starting GDB, loading programs into it, setting breakpoints to pause execution, single-stepping or continuing execution, and querying values of variables. It also covers conditional breakpoints, using GDB with pointers and data structures, and other useful commands like backtrace and watchpoints. The goal is to demonstrate how GDB can be used to inspect program execution and help debug issues like segmentation faults.