Скачиваний:
201
Добавлен:
17.06.2016
Размер:
2.69 Mб
Скачать

Предикат trace

Кроме оптимизации скорости процесса трассировки директива shorttrace

приводит также к меньшему объему выводимой в окне Trace (Трассировка) ин-

формации. Когда вы трассируете достаточно большую программную секцию, это

может быть существенным преимуществом. Однако, и trace, и shorttrace мо-

гут генерировать тем не менее очень много информации. В этом случае для

существенного уменьшения объема вывода (для некоторых предикатов ничего

не выдается) вы можете использовать предикат trace.

Предикат trace всегда усешно завершается и работает только если

включен режим трассировки. Вы можете включить его, расположив в заголовке

программы одну из соответствующих директив компилятора (trace или

shorttrace), или выбрав их в меню O/C/Trace. Впоследствии, если ваша

программа встретит команду:

trace(off)

система выключит трассировку до тех пор пока не встретится команда:

trace(on),

которая снова включит трассировку.

Пример использования предиката trace

Предположим вы уже знаете, что правило для предиката workslready ра-

ботает как положено, и вы имеете правило для предиката test, определенное

так:

test(X):- workslready(X, Z), other11redicate(B, A),...

Вы можете более эффективно проверить test, временно переопределив

его следующим образом:

test(X):-

trace (off),

works_already(X, Z),

trace(on),

other_predicate(B, A),

...

Предикат trace имеет вариант с выводом текущего состояния трассиров-

ки. Вы можете использовать эту версию trace внутри предикатов, для кото-

рых уже известно, что они работают. При этом вы можете устанавливать сос-

тояние трассировки обратно в первоначельное значение вместо того, чтобы

просто включить трассировку. В сложных ситуациях это может оказаться

очень ценным.

works_already(...):-

trace(OLD),

/* .....*/

trace (off),

/* .....*/

trace (OLD).

Диалоговое управление трассировкой

Когда программа работает в режиме трассировки, для изменения режима

вы можете нажать Alt-T. При этом появится маленькое меню с тремя возмож-

ностями (опциями): Status (Состояние), Trace Window (Окно Трассировки) и

Edit Window (Окно Редактора). Для выбора нужной возможности можно исполь-

зовать клавиши "Вверх", "Вниз", а клавишу "Ввод" - для включения ("On")

или выключения ("Off") выбранной возможности. Для продолжения работы ва-

шей программы в выбранном режиме трассировки нажмите клавишу F10. Прочти-

те описание возможностей меню Trace.

Состояние ( Status )

Опция Status определяет режим директивы trace. Для изменения состоя-

ния trace нажмите "S" или "Enter" ("Ввод"). Эта опция имеет тот же эф-

фект, как и использование предикатов trace(on) и trace(off) внутри прог-

раммы.

Окно Трассировки ( Trace Window )

Опция Trace Window определяет, будет ли обычный вывод трассировки

посылаться в окно Trace (Трассировка). Если Trace Window выключено (уста-

новлено Off) и опция Edit Window включена (On), Турбо Пролог будет прохо-

дить программу от вызова к вызову без вывода сообщений в окно Trace. Для

продолжения работы программы от вызова до вызова нужно нажимать клавишу

F10.

Соседние файлы в папке Документация