ТРАСУВАННЯ ВИКОНАННЯ ПРОГРАМИ

У програмах, де досить багато операторів IF, циклів FOR-NEXT і підпрограм, утворюється значна кількість колій, по яких може піти їх виконання Якщо не виводити проміжні результати за допомогою операторів PRINT, то при виникненні помилки важко визначити, по яким саме шляхом йшло перед цим виконання програми Деякі системи забезпечують зручний спосіб отримання подібної інформації з

допомогою команди TRACE (трасування), що спонукає інтерпретатор друкувати номер кожного виконуваного оператора Тим самим при отриманні повідомлення про помилку складається повна передісторія виконання програми

10 REM ДЕМОНСТРАЦІЯ трасування

20 TRACE

30 I=10

40 FOR J=l TO 2

50   I=I+1

60   PRINT J1

70 NEXT J

80 END RUN

[30]  [40]  [50] [60]  1  11 [70]  [50] [60]  2  12

[70]  [80] OK

Наведена вище програма демонструє дію оператора TRACE в Бейсике Microsoft, яким можна користуватися і як командою, в режимі негайного виконання Номери операторів зображуються увязненими в квадратні дужки з тим, щоб їх легко було відрізнити від інших даних, які можуть виводитися в діагностичних цілях, наприклад від значень J і I, що видаються в рядку 60 Оператор NO TRACE скасовує трасування

У Бейсике ВВС для управління трассировкой використовуються оператори-TRACE ON (включити трасування) і TRACE OFF (вимкнути трасування) і, крім того, передбачений оператор TRACE N, де N номер оператора У цьому випадку проводиться трасування тільки тих операторів, номери яких не перевищують N

При трасуванні значно сповільнюється виконання програми і може створюватися безліч вихідних даних Щоб уникнути цього, можна спочатку почекати, поки програма не виявиться поблизу помилковою області, призупинити її виконання (клавішею переривання), потім набрати команду TRACE і продовжити роботу програми по команді CONTINUE Інший спосіб полягає в облямівці помилковою області в програмі операторами TRACE і NO TRACE

Врахуйте, що інтерпретатор може оптимізувати надану йому для виконання програму на Бейсике, тому можуть зображуватися не всі очікувані номери рядків Це відноситься до оператора FOR, що відкриває цикл FOR-NEXT у наведеному вище прикладі

Джерело: Уолш Б Програмування на Бейсике: Пер з англ М: Радіо і звязок, 1988 336 с: ил

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*