Иллюстрированный самоучитель по Perl



         

Точки останова и действия - часть 2


break if ($r==l) 6: @s = split;

break if (1) •/;•;'• : • -

Отображаемая информация о точке останова представляет номер строки и код Perl, а также условие, при котором действует точка останова (break if (УСЛОВИЕ)). Для безусловной точки останова условие всегда истинно и равно 1.

Для удаления точки останова достаточно выполнить команду d с параметром, равным номеру строки, в которой определена точка останова. Команда о удаляет все точки останова, определенные в сеансе работы с отладчиком.

Полезно при отладке программы задать действия, которые будут предприняты перед выполнением операторов определенной строки. Например, напечатать значения каких-либо переменных или изменить их при выполнении некоторого цикла. Подобное поведение программы можно реализовать, задав действия командой а. Два ее параметра определяют строку кода и сами действия (обычный оператор Perl) перед началом выполнения операторов заданной строки:

а 75 print "*** $ref\n";

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

Любое действие можно выполнить немедленно, набрав код в строке приглашения отладчика DBO. Подобные действия не изменяют текст программы (операторы действий не записываются в ее файл), но позволяют создавать новые переменные и использовать их в вычислениях. Правда, по завершении сеанса отладки подобная информация пропадает.

Мы познакомили читателя лишь с основными командами отладчика, наиболее важными и полезными, с нашей точки зрения, для процесса поиска ошибок. Их полный набор с краткими описаниями представлен в табл. 14.2. Более подробную информацию можно всегда найти в документации, с которой распространяется Perl, или из различных ресурсов Internet.

Таблица 14.2. Основные команды отладчика

Команда

Описание

m

Отображается содержимое стека вызванных подпрограмм

s

Пошаговое выполнение программы (с заходом в подпрограммы)

n

Пошаговое выполнение программы (без захода в подпрограммы)

<Enter>

Повтор последней команды s или п

r

Завершение текущей подпрограммы и возврат из нее

с [строка] с [подпрогр]

Непрерывное выполнение кода программы до первой точки останова или указанной строки, или подпрограммы

1 строка+число

Отображает число плюс одну строку кода, начиная с заданной строки —

1 строка!-строка2

Отображает диапазон строк: от строки с номером строка! до строки с номером строка2

1 строка

Отображает заданную строку

1 подпрогр

Отображает первый блок строк кода подпрограммы

1

Отображает следующий блок из 10 строк

-

Отображает предыдущий блок из 10 строк

w [строка]

Отображает блок строк вокруг заданной строки

Возврат к выполненной строке

f файл

Переключение на просмотр файла. Файл должен быть загружен

/образец/

/ Поиск строки по образцу; направление вперед от текущей строки. Завершающая косая черта не обязательна

?образец?

Поиск строки по образцу; направление назад от текущей строки. Завершающий символ "?" не обязателен

L

Отображение всех установленных точек останова

S [ [ ! ] образец]

Отображение имен подпрограмм, [не] соответствующих образцу

t

Включение/выключение режима трассировки

b [строка] [условие]

Установка точки останова в заданной строке и условия ее действия

b подпрогр [условие]

Установка точки останова в первой строке подпрограммы и условия ее действия

b load файл

Установка точки останова на операторе require файл

b postpone подпрогр [условие]

Установка точки останова в первой строке подпрограммы после ее компилирования

b compile подпрогр

Остановка после компилирования подпрограммы

<


Содержание  Назад  Вперед