Отладчики gdb и lldb: пошаговое исследование программ
Коротко: Отладчик останавливает работающую программу, показывает переменные и цепочку вызовов и выполняет её построчно; gdb и lldb — стандартные инструменты для C, C++ и Rust.
Подробнее: Вместо того чтобы разбрасывать printf повсюду, можно наблюдать за работой программы. Отладчик запускает её под контролем, останавливается на точках останова и позволяет исследовать память и регистры. Даже после аварии (segmentation fault) помогает core-файл.
Подробности
Подготовка
Компилируйте с отладочными символами…
См. также: отладка, чтение стека вызовов, Valgrind и санитайзеры, segmentation fault