Что делать, если программа падает? Или в ней очевидно есть ошибка, но глазами по коду не видно в чем проблема. Или просто хочется выполнить код по шагам.
Простой вариант - добавить в каждую строчку printf
и смотреть на вывод. Часто помогает, но не всегда. А иногда совсем не помогает, если непонятно поведение библиотеки, в которую print не воткнуть. Или когда нужно посмотреть внутрь сложных объектов.
<aside> 👩💻 ТруЪ программисты и используют отладчик (дебаггер)!
</aside>
Обычно отладчиком пользуются из IDE, хотя сам он не является их частью. Просто так удобнее. IDE - это integrated development environment - интегрированная среда разработки. Интегрирует всё в себя. В ней можно жить.
Далее копипаста из документации среду разработки CLion, но в других средах разработки всё тоже самое:
Сложный пример с условным брейкпоинтом на 32-ую строчку кода
Exception breakpoints - останавливают выполнение программы при возникновении исключений. Очень полезно в С/С++ чтобы анализировать сегфолты и прочие undefined behaviour. (спойлер - неопределенное поведение иногда ведет себя в отладчике по-другому)
Условные брейкпоинты - иногда IDE поддерживает устанавливать условие по которому код должен остановиться. Например при итерации по массиву в миллион чисел надо остановиться именно на 42-ой тысяче итераций.
Окна Watches - описание всех доступных переменных, включая содержимое STL-контейнеров.
пример выполнения на лету (Evaluation) и просмотра содержимого всех переменных
Evaluations - позволяет выполнить какой-нибудь код прямо во время выполнения программы! В С/С++ может работать плохо, но в java, c#, python, js работает просто отлично.
Просмотр дизассемблированного кода. (можно использовать для написания лаб по ассемблеру(нет))