This document discusses debugging CPython processes with gdb. It begins by stating the goals of making gdb a useful option for debugging and highlighting common issues. It then discusses why debugging is important for large open source projects like OpenStack. Several typical problems that gdb can help with are described, such as hung processes, stepping into native code, and interpreter crashes. Advantages of gdb over pdb are outlined. Prerequisites for using gdb to debug Python are covered, including ensuring gdb has Python support and obtaining CPython debugging symbols. Various gdb commands for debugging Python processes are demonstrated, such as attaching to a process, printing tracebacks and locals, and executing Python code in the debugged process. Finally, some common gotchas are highlighted around virtual environments