4.20. Ошибки ввода-вывода

*

Одним из первых шагов отладки должно быть распечатывание всех вводимых данных. Множество программных ошибок связано с неверным считыванием входных данных. При этом бесполезно тратится масса времени на поиски несуществующей ошибки в программе, между тем как ее истинной причиной являются неправильные данные.

Неправильные данные могут являться следствием опечаток, неверной интерпретации данных либо неправильного определения форматов ввода. Распечатывая введенные данные, программист получает возможность просмотреть их и убедиться в правильности их считывания машиной. Однако такая проверка, помогая выявлять ошибки перфорирования, никак не затрагивает форматных ошибок. Я почти всегда прибегаю к распечатыванию входных данных, поскольку убедился на собственном опыте, что это действие является единственной надежной гарантией правильного считывания вводимой информации:

Введенные данные следует распечатывать немедленно после их считывания в память машины. Этот процесс называется эхо-проверкой, и если предусмотреть его выполнение в программе несколько позже, то можно либо вообще не добраться до этого этапа, либо содержимое области памяти, использованной для записи исходных чисел, может измениться в ходе работы программы.

Выполняйте эхо-проверку вводимых данных.

Распечатываемые при эхо-проверке данные не должны быть безымянными; необходимо, чтобы можно было легко разобраться, какие значения к каким переменным относятся. В ФОРТРАНе для этих целей можно использовать команду NAMELIST, а в языке ПЛ/1—команду PUT DATA, В КОБОЛе значения переменных, участвующих в отладке, легко выводятся на печать посредством команды DISPLAY или EXHIBIT.

В случае отладки модулей или подпрограмм входными переменными служат конкретные значения их параметров. Следует в обязательном порядке распечатывать эти значения, так как в случае обнаружения в них ошибки вся работа по отладке, проделанная до этого момента, будет напрасной тратой времени.

Что касается ошибок вывода данных, то они могут привести программиста к предположению, что во всем виновата программа, даже в тех случаях, когда их причиной является неправильная спецификация форматов.

В этом плане наиболее распространенными ошибками являются занижение или совершенно неправильное определение размеров требуемых полей выходных данных. Для программиста, имевшего дело с подобными ошибками, они, как правило, очевидны, Менее опытные программисты могут приобрести необходимые навыки, анализируя результаты экспериментов с уменьшенными размерами полей и их неправильными спецификациями и запоминая характер выдаваемых при этом сообщений об ошибках.

4.19. Описание переменных || Оглавление || 4.21. "Психология" программных ошибок


Услуги