Синтаксическая ошибка возникает, когда вы пишете код, который не соответствует правилам грамматики языка C++. Например, пропущенные точки с запятой, необъявленные переменные, непарные круглые или фигурные скобки и т.д. В следующей программе есть несколько синтаксических ошибок:1
#include ; // директивы препроцессора не заканчиваются точкой с запятой
return 0 // пропущена точка с запятой в конце стейтмента
К счастью, компилятор ловит подобные ошибки и сообщает о них в виде предупреждений или ошибок.
Семантическая ошибка возникает, когда код является синтаксически правильным, но делает не то, что задумал программист.
Иногда это может привести к сбою в программе, например, если делить на ноль:
Иногда это может привести к неверным результатам:
Либо делать вообще не то, что нужно:
int add ( int x , int y )
return x — y ; // функция должна выполнять сложение, но выполняет вычитание
К сожалению, компилятор не ловит подобные ошибки, так как он проверяет только то, что вы написали, а не то, что вы хотели этим сделать.
Без этого вы не станете программистом! Найти ошибку в коде. Отладка. Как пользоваться отладчиком #23
В примерах, приведенных выше, ошибки довольно легко обнаружить. Но в большинстве программ (в которых больше 40 строк кода), семантические ошибки увидеть с помощью простого просмотра кода будет не так-то и легко.
И здесь нам на помощь приходит отладчик.
Отладчик
Отладчик (или «дебаггер» , от англ. «debugger» ) — это компьютерная программа, которая позволяет программисту контролировать выполнение кода. Например, программист может использовать отладчик для выполнения программы пошагово, последовательно изучая значения переменных в программе.
Более ранние дебаггеры, такие как GDB , имели интерфейс командной строки, где программисту приходилось вводить специальные команды для старта работы. Более современные дебаггеры уже имеют «графический» интерфейс, что значительно упрощает работу с ними. Сейчас почти все современные IDE имеют встроенные отладчики. То есть, вы можете использовать одну среду разработки как для написания кода, так и для его отладки (вместо постоянного переключения между разными программами).
Базовый функционал у всех отладчиков один и тот же. Отличаются они, как правило, тем, как этот функционал и доступ к нему организованы, горячими клавишами и дополнительными возможностями.
Примечание: Перед тем как продолжить, убедитесь, что вы находитесь в режиме конфигурации «Debug» . Все скриншоты данного урока выполнены в Visual Studio 2019.
Степпинг
Степпинг (англ. «stepping» ) — это возможность отладчика выполнять код пошагово (строка за строкой). Есть три команды степпинга:
- Команда «Шаг с заходом»
- Команда «Шаг с обходом»
- Команда «Шаг с выходом»
Что такое отладка программы в разработке

В этой стать мы разберём, что такое отладка программы или кода.
Что такое отладка:
Это этап разработки компьютерных программ, когда нужно найти и исправить ошибки в коде.
Как провела отладку делают в самую последнюю очередь, это конечно, если нет каких то ошибок, которые вообще ломают программу.
Также часта отладку называют дебаггингом или debug, что произошло от слова bug (Рус жук).
Примечание:
debug назвали от слова bug, из-за того, что во времена компьютеров на перфокартах, в сам компьютер залез жук и он не правильно стал работать, это был 1947 год.
Как происходит процесс отладки:
Теперь разберём как происходит процесс отладки, во время дебаггинга вы узнаёте:
- Значения всех переменных;
- Путь по которому выполняется программа;
Это то что вы получите при отладке, но также нужно знать какие способы используются при этом, всего их два.
Первое: это использовать программу отладчик, на мой взгляд наиболее удобный и понятной способ, так как, есть уже удобный интерфейс для дебаггинга, вы можете чётко отслеживать на какой строчки находитесь, и т.д.
Второе: просто в критических местах кода пишем вывод переменных, чтобы понять где вычисления идут не верно.
Также, тут стоит сказать, что как провела программа из первого варианта сразу стоят в IDE, но если вы пользуетесь текстовым редактором, например, VS code, то обычно вам надо будет выводить переменные, но иногда есть возможность подключить нормальный дебаггер.
Доп инструменты отладки:
Также кроме самой отладки, есть ещё ряд дополнительных инструментов, которые помогут вам проверять код на работоспособность.
- Профилировщики — Позволяют узнать сколько времени выполняется та или иная часть кода;
- Логи — Суть логов, что они записывают каждое действие программы в кокой-то файл, который потом можно просмотреть;
- Снифферы — Отслеживают сетивой трафик, который генерирует программа;
Ещё можно делать некоторые действия, что бы упростить конечную отладку программы, или даже вообще обходится без нею.
- Контрактное программирование — Это один способов программирования, суть его в том, что программист когда пишет код, он ещё другими путями подтверждает, что должно вывестись на выходе программы;
- Модульное тестирование — Проверка кода по его частям;
- Анализ кода — Анализировать код на стандартные ошибки, например, не поставил точку c запятой;
- Использование библиотек — Ещё нужно в идеале использовать сторонние, проверенные библиотеки, а не создавать велосипед с нуля.
Вывод:
В этой статье вы прочитали, что такое отладка или дебаггинг в разработки, и как его можно минимизировать.
Источник: prognote.ru
Debug в IDEA
У программистов есть свой сленг, хотя многие считают, что это технический жаргон. В любом случае, вам не избежать ни знакомства с ним, ни детального изучения. Так что начинайте втягиваться.
Одним из первых слов, с которым вы познакомитесь, будет слово баг , от английского bug (жук). Это слово обозначает ошибку в программе, когда программа делает что-то не то или не так. Или просто странно работает.
Однако, если программист считает, что программа, хоть и работает странно, но именно так он и задумывал, обычно заявляет что-то типа «это не баг, это фича». Что породило кучу интернет-мемов.

В принципе причина неправильной работы может быть любая: ошибка в логике программы, опечатки, неверная архитектура программы, вплоть до проблем в компиляторе. В любом случае программистам нужно править и настоящие баги, и любые другие «недочеты», которые есть в программе.
История слова bug
Самой распространённой версией происхождения слова баг является такая легенда.
В сентябре 1947 года ученые Гарвардского Университета тестировали один из первых компьютеров — Mark II. Компьютер не работал, и в процессе проверки всех плат они нашли мотылька, застрявшего между контактами электромеханического реле.
Извлеченное насекомое было вклеено скотчем в технический дневник и сопровождено надписью, мол «баг найден и устранен».
Считается, что именно эта смешная история и послужила началом использования слова баг как обозначения ошибки, а слово дебаг (debug) стало синонимом устранения ошибок.

2. Отладка программы
Для устранения багов в своих программах программисты используют специальные программы-отладчики ( debugger ). Некоторые из этих программ умеют отлаживать даже машинный код.
Java-программисты для отладки ( debugging ) своих программ используют IDE. Такие как Intellij IDEA, Eclipse и Net Beans. IntelliJ IDEA на сегодняшний день является самой мощной IDE, поэтому мы рассмотрим процесс отладки на ее примере.
Intellij IDEA может запустить вашу программу в двух режимах:
| Обычное выполнение | ![]() |
Shift + F10 |
| Запуск в режиме отладки | Shift + F9 |
С обычным режимом работы вы уже знакомы: программа запустится, отработает и завершится. А вот режим отладки несет для вас немало сюрпризов.
Режим отладки
Режим отладки позволяет пошагово выполнить всю вашу программу. Или правильнее будет сказать, построчно : строка за строкой . При этом вы можете наблюдать значения переменных на каждом шаге программы (после выполнения каждой строки кода). И даже менять их значения!
Чтобы минимально овладеть искусством отладки программы, вам нужно изучить три вещи:
- Точки остановки
- Пошаговое выполнение
- Просмотр значений переменных
3. Точки остановки ( Break Points )
IDE позволяет вам разместить в коде специальные метки — точки остановки ( break point ). Каждый раз, когда программа, запущенная в режиме отладки, будет доходить до строки, отмеченной как break point , она будет становиться на паузу.
Чтобы поставить break point на определенной строке, нужно просто кликнуть в IDEA слева от этой строки. Пример:

В результате строка будет отмечена точкой остановки (break point), и Intellij IDEA подсветит ее красным цветом:

Повторный клик мышкой на панели слева от кода снимет установленную break point .
Также break point можно просто поставить на текущей строке с помощью горячей комбинации клавиш — Ctrl + F8 . Повторное нажатие Ctrl + F8 на строке, где уже есть break point , удаляет ее.
4. Запуск программы в режиме отладки (дебага)
Если у вас в программе есть хотя бы одна точка остановки, вы можете запускать программу в режиме отладки ( Shift + F9 или «иконка с жуком»).
После запуска в режиме отладки программа выполняется как обычно. Но как только она дойдет до выполнения строки кода, помеченного break point , встанет на паузу. Пример:

В верхней половине скриншота вы видите код программы с двумя точками остановки. Программа замерла на строке 5 — отмечена синей линией. Строка 5 еще не выполнилась: в консоль еще ничего не выводилось.
В нижней половине экрана вы видите панели режима отладки: панель Debugger , панель Console (вывод на экран), а также набор кнопок для режима отладки.
Вы можете снять вашу программу с паузы (продолжить ее выполнение), если нажмете кнопку Resume Program на панели слева снизу (или нажмете клавишу F9 ).

Если нажать такую кнопку (или F9 ), программа продолжит работу, пока не встретит следующую точку остановки или не завершится. Вот что мы увидим после нажатия такой кнопки:

Программа остановилась на второй точке остановки, а в консоль выведены слова Привет и И – признак того, что из трех строк вывода на экран выполнились только две.
5. Пошаговое выполнение
Если ваша программа работает в режиме отладки, вы также можете выполнять ее пошагово: один шаг — одна строчка . Для пошагового выполнения есть две горячие клавиши: F7 и F8 : каждая из них приводит к выполнению текущей строки кода. Но сначала вам нужно будет все же остановить вашу программу с помощью break point .
Если вы хотите выполнять вашу программу построчно, вам нужно поставить break point в самом начале метода main() и запустить ее в режиме отладки.
Когда программа остановится, вы сможете начать построчное ее выполнение. Одно нажатие клавиши F8 – одна строка.
Вот как будет выглядеть наша программа после остановки и нажатия клавиши F8 один раз:

Первая строка метода main уже выполнилась, и текущая строка — вторая. Вы также можете видеть в нижней части скриншота, что на экран уже вывелось слово Привет .
6. Пошаговое выполнение с заходом в методы
Если у вас есть в программе собственные методы, и вы хотите, чтобы в режиме отладки ваша программа не просто выполнялась пошагово, но и заходила внутрь ваших методов, для «захода в метод» вам нужно нажимать не клавишу F8 , а клавишу F7 .
Допустим, вы пошагово выполняете программу и сейчас остановились на 4-й строке. Если вы нажмете кнопку F8 , IDEA просто выполнит четвертую строку и перейдет к пятой.

А вот если вы нажмете F7 , IDEA будет пошагово выполнять метод main2() :

Все очень просто. Если вам не сильно важно, что и как происходит внутри метода, вы нажимаете F8 , если важно — F7 и пошагово выполняете весь его код.
Источник: javarush.com
