Трассировка предполагает пошаговую выдачу информации о
выполнении предикатов и значениях передаваемых переменных. Для включения
трассировки вначале программы записывается директива компилятора trace или shorttrace. Включение директивы trace приостанавливает
выполнение программы после каждой попытки удовлетворить подцель. В этот момент
в окне трассировки выводится значение переменных и другая информация,
назначение которой определяется следующими словами.
CALL
– каждый раз при выводе предиката в окне трассировки отображается имя предиката
и входные значения его параметров.
RETURN
– предложение завершено успешно и управление передается вызывающему предикату
(обратный ход). Если имеются другие предложения из раздела clauses, удовлетворяющие входным
параметрам, то выводится *, обозначающая , что это предложение является точкой
возврата.
FAIL
– выводится, если предикат несогласовывется, за этим словом выводится имя
невыполнимого предиката.
REDO
– имеется возврат к предудущему состоянию (переход без изменения параметров к
другому предложению для данного предикаат. Имя предиката, который повторно
выполняется, вместе со значением его параметров отображается в окне
трассировки.
Для продолжения выполнения программы необходимо нажать F10. Прервать выполнение
программы можно клавишей ESC.
Комбинация Ctrl-T во время пошагового
выполнения программы позволяет включать и выключать трассировку по желанию.
Если требуется производить трассировку только нескольких предикатов, то
перечень этих предикатов разделяется запятыми и записывается после слова trace.
Директива shorttrace
является аналогм trace,
с той разницей, что в окно трассировки выводится более краткая информация. В
некоторых случаях возникает необходимость получить трассировку лишь отдельного
фрагмента программы. Для этйо цели в начале и конце этого фрагмента
записывается стандартный предикат tracec соответствующим параметром статуса on или off. Формат стандартного предиката trace (Статус) (symbol) : (i) (o).