Отладочные средства Dev-C++
Сущность отладки
Слово «отладка» означает «поиск и исправление ошибок в программе». Соответствующий
английский термин debugging (дословно «удаление жучков») по преданию связан с тем, что в контакты компьютера Mark II в 1940 году попал жучок (моль), из-за которого в вычислительной машине произошел сбой.
Существует три типа ошибок в программах:
• синтаксические – ошибки в написании операторов (например, вместо printf часто не-
правильно пишут просто print); эти ошибки легко исправить, потому что их обнаруживает транслятор и чаще всего говорит, в какой именно строчке ошибка;
• ошибки времени выполнения – во время работы случилась «аварийная» ситуация, например, деление не ноль;
• логические – ошибки в алгоритме (программа работает, но выполняет не то, что нужно);
эти ошибки сложнее всего обнаружить, потому что иногда они проявляются совсем не в
том месте, где находится неверная команда.
Итак, самое трудное во время отладки – это найти ошибку, то есть определить ошибочный оператор. К сожалению, эту задачу никак не удается автоматизировать, ее может решить только человек. Для облегчения этой работы придумали хитрые приемы и написали специальные программы – отладчики.
Трассировка
Трассировка – это вывод сигнальных сообщений в определенных точках программы во
время ее работы. Что же это дает?
Во-первых, получив такое сообщение на экран, мы знаем, что программа вышла в эту точку (не завершила работу аварийно раньше и не зациклилась). Во-вторых, в этих сообщениях можно выводить не только текст, но и значения переменных – это позволяет проверять, правильно ли считает программа. Если, например, во 2-ой контрольной точке все значения переменных были верные, а в 3-ой уже нет, то ошибку нужно искать между этими точками.
В этой программе в трех точках (1, 2 и 3) стоят операторы трассировки:
В точке 1 мы увидим на экране число, которое находится в переменной X после ввода значения с клавиатуры – так можно проверить правильность ввода.
В точке 2 мы выводим на экран значения переменных на каждом шаге цикла. Это позволяет сверить их с ручным расчетом и выяснить, верно ли выполняются вычисления в цикле.
В точке 3 значение переменной X после завершения цикла выводится на экран.
Заметим, что трассировку можно применять практически всегда, для этого не нужна программа-отладчик.