logo
TurboProlog / Документация / TOM_1

Stack Check (Проверка стека)

Эта опция предпишет компилятору создать программу, которая будет

проверять переполнение стека во время выполнения. При этом, если в вашей

программе произойдет переполнение стека, сообщение об ошибке все же лучше

чем аварийное завершение. Для того, чтобы отследить эту ошибку, вы можете

использовать предикат trap (описан в главе 19). Для создания такой прог-

раммы установите O/C/ R/Stack Check в On.

Обзор

Приведем основные моменты, описанные в этой главе:

1. Первым шагом отладки в Турбо Прологе является проверка синтакси-

са, при которой определяются синтаксические ошибки в программе во

время компиляции. При этом курсор помещается под найденной ошибкой,

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

2. В режиме трассировки вы можете проходить всю вашу программу (или

ее части), причем Турбо Пролог сообщает о вызовах, сравнениях, неу-

дачах, возвратах и попытках поиска с возвратом, как только они воз-

никают.

3. Турбо Пролог содержит директивы компилятора для отладки, которые

вы можете располагать в вашей программе. Это check_determ,

diagnostics и nowarnings. Вы можете также выбрать их из меню

Option/Compiler Directives как Non-Determ Warning (Предупреждение о

неопределенности), Diagnostics (Диагностика) и Variable Used Once

Warning (Предупреждение о переменных используемых один раз) соответ-

ственно.

4. Вы можете управлять выводом сообщений об ошибках времени исполне-

ния программы, если воспользуетесь директивой errorlevel. Возможно

также выбрать диагностику времени исполнения из меню O/C/R/Integer

Overflow Check, O/C/Error Level и O/C/R/Stack Check.