Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИКУМ ПО ОМПТ++.doc
Скачиваний:
147
Добавлен:
11.02.2015
Размер:
972.8 Кб
Скачать

3. Средства отладки программного обеспечения

Опыт создания микропроцессорных систем показывает, что наиболее трудоемким этапом является не сборка элементов системы, не написание программ как таковое, а отладка системы – отладка аппаратной части, программ и отладка работы их в комплексе.

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

Убедиться, что программа выполняет свои действия так, как задумал программист, невозможно без составления контрольного примера. При составлении контрольного примера программист задается определенными значениями исходных операндов. Затем он “вручную” должен рассчитать результат действия программы, а если в программе есть логические ветвления, еще и оценить, по каким ветвям будет двигаться программа. После этого, задав исходные данные и запустив программу на выполнение, программист должен убедиться, что программа выдает именно то же самое и таким же образом, что он получал в своем примере на бумаге. Понятно, что пример должен составляться таким образом, чтобы можно было выявить все “узкие” места программы. Вполне возможно, что для того, чтобы проверить программу со всех сторон, придется составить несколько таких примеров. Иногда программа может быть настолько сложной, что найти ошибки, оценивая только конечный результат ее действий, оказывается просто невозможно. В этом случае необходимо проверять промежуточные результаты ее действий, постепенно отыскивая то место в программе, где расходятся результаты примера и работы программы.

Зачастую нерационально запускать программу для проверки с контрольным примером в реальной отлаживаемой системе. Иногда это сложно с технической точки зрения. И почти всегда при этом сложно задавать для проверяемой программы исходные данные, получать промежуточные или окончательные результаты ее работы. Поэтому для отладки программ обычно используются специальные отладочные средства. Сначала появились аппаратные отладочные средства, затем, с появлением персональных компьютеров, и программные отладочные средства. Ниже в пособии будут детально рассмотрены примеры и тех и других средств. Но сначала рассмотрим, что это такое в принципе.

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

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