gdb
GDB, the GNU Debugger, is a portable debugger for many programming languages and targets. It is part of the GNU project and distributed under the GNU General Public License. GDB can debug programs locally or remotely, by launching a program under its control or by attaching to a running process, across a wide range of architectures and operating systems.
GDB provides breakpoints, including conditional and watchpoints, as well as stepping commands such as step, next,
Language support covers C and C++, Fortran, and other languages; Go, D, Ada, Objective-C, Pascal, and Rust
Typical workflow: compile with debugging symbols (-g), avoid heavy optimization if precise debugging is needed, start