Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование в среде Matlab.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
105 Кб
Скачать
☆

2.3 Отладка

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

Для отладки программ и m-функций могут быть полезны следующие простые рекомендации:

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

Расставьте по тестируемому тексту операторы keyboard. При выполнении этих операторов MATLAB приостановит работу, выведет приглашение, и в режиме интерпретатора можно будет анализировать промежуточные результаты (выводить содержимое интересующих переменных, переопределять величины).

Превратите m-функцию в файл script. Закомментируйте описания в начале файла и выполните полученный файл.

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

2.3.1 Отладка в командном режиме

Если отладку проводить при помощи команд среды MATLAB, то для установки и снятия точек останова применяются команды dbstop и dbclear. Каждая из этих команд имеет несколько вариантов применения, в частности команда dbstop еще и задает режимы отладки, a dbclear отменяет назначения. Команды отладки приведены в таблице 2.4.

Таблица 2.4

Команда

Описание

Dbstop

Определить точку останова

Dbclear

Удалить точку (точки) останова

Dbcont

Продолжить выполнение

Dbstep

Выполнить команду отладки

Dbquit

Завершить отладку

dbstack

Список точек останова

Полный список команд отладки с перечислением вариантов обращения можно посмотреть в системе справки (help debug), документации MATLAB или книгах.

2.3.2 Редактор medit и отладка

Редактор-отладчик medit обеспечивает удобную среду для подготовки и отладки m – файлов в MATLAB. Файл редактора medit.exe находится в директории \bin и может быть вызван из командного окна MATLAB (пункты New и Open меню Filе, запуск команды edit) или запущен как обычная программа. Редактор-отладчик предоставляет доступ к текстам и данным, в нем можно редактировать m-файлы, вызывать для просмотра и изменения матричные переменные, организовывать отладку программ и функций.

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

Если редактор medit вызван из командного окна, то в процессе вычислений редактирование становится невозможным. Чтобы в среде Windows подготавливать код (файлы сценариев и функций) параллельно вычислениям, можно запустить редактор medit автономно от MATLAB, но в этом случае просмотр данных будет невозможен.

Рассмотрим отладку с использованием средств редактора-отладчика. Назначения пунктов меню Debug приведены в таблице 2.5.

Таблица 2.5

Пункт меню

Описание

Set/Clear Breakpoint F12

Расставить/убрать точку останова

Clear All Breakpoints

Убрать все точки останова

Step In F11

Построчное исполнение с заходом в вызываемые функции

Single Step F10

Построчное исполнение

Continue

Выполнение до следующей точки останова

Quit Debugging

Завершить отладку

Для отладки m-функции вызовем из командного окна редактор medit и считаем нужный файл. Чтобы указать точку останова в тексте функции, установим курсор на нужной строке и выполним пункт Set/Clear Breakpoint или щелкнем по отвечающему этому пункту значку. После расстановки точек останова запустим отлаживаемый файл. Пакет MATLAB выполнит все команды до первой точки и сделает паузу. Ниже можно просмотреть значения переменных. Пунткты указатели из меню откладки Debug (Таблица 2.6).

Таблица 2.6

Stop If Error

Остановка при ошибке

Stop if Warning

Остановка при предупреждающем сообщении

Stop if NaN or Inf

Остановка при появлении нечисловой или бесконечной переменной