Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 5 Справка в VFP Обработка ошибок Отла...doc
Скачиваний:
1
Добавлен:
20.08.2019
Размер:
2.18 Mб
Скачать

Малюнок 20. Діалогове вікно Watch.

Зверніть увагу також на кружок ліворуч від останньої перемінної що відслідковується. Це ще один спосіб установити в програмі точку зупинки. Для цього достатньо клацнути лівою кнопкою миші ліворуч від імені перемінної на сірому полі. У даному випадку зупинка відбудеться при будь-якій зміні значення перемінної lcLastSetTalk. Щоб в цьому переконатися, відкрийте діалогове вікно Breakpoints — і ви побачите, що в списку Breakpoints з'явився новий елемент. Оскільки в діалоговому вікні Watch вираження мають такий же статус, що і перемінні, подібним способом можна установити точку зупинки, що реагує на зміну значення специфікованого вираження.

2.9.4.Діалогове вікно Call Stack

При виконанні додатка буває важко удержати в пам'яті послідовність виклику підпрограм, що привела до даної ситуації. Хоча найчастіше джерело ненормальної роботи програми виявляється саме в неправильній послідовності викликів, тобто в невідповідності між реальною послідовністю і запланованої. За допомогою діалогового вікна Call Stack можна в будь-якій поточній ситуації з'ясувати, як же програма дійшла до поточного стану. Це вікно показане в купі з іншими на Малюнок 16.

Точно так само, як у вікні Trace стрілка вказує поточний оператор що виконується, у вікні Call Stack стрілка вказує поточну підпрограму що виконується (процедуру, функцію, метод об'єкта).

Якщо у вікні Call Stack клацнути на імені будь-якої підпрограми більш верхнього рівня, налагоджувальник автоматично переключить вікно Locals на відображення поточних локальних перемінних цієї підпрограми. Увесь час, поки ви будете переглядати інформацію про стан цієї підпрограми, він буде відзначена в списку вікна трикутним маркером праворуч від імені. Але врахуйте, таке переключення ніяк не впливає на порядок виконання операторів — наступним при поновленні роботи програми все рівно буде виконаний оператор у підпрограмі самого нижнього рівня.

2.9.5.Використання вікна Debug Output

У вікні Debug Output виводиться рядок символів, визначений командою DEBUGOUT. Якщо встановлений режим відстеження подій, то в цьому вікні виводяться і найменування системних подій.

Команда DEBUGOUT має наступний формат:

DEBUGOUT <вираження>

Цю команду можна включити в текст програми для того, щоб виводити деяке повідомлення у вікно Debug Output. Оскільки виведення здійснюється тільки в це вікно, команду можна залишити й у переданої користувачам версії додатка. Якщо тільки користувач не має у своєму розпорядженні повний комплект Visual FoxPro і не відкриє в ньому вікно Debug Output, він навіть і не здогадається про існування в тексті програми команди DEBUGOUT. А програміст при виникненні будь-якої ненормальності в роботі програми зможе відкрити це вікно і простежити повідомлення, що виводить у нього програма в міру виконання операцій.

Як правило, команда використовується, по-перше, для виводу поточного значення будь-якого перемінної чи вираження і, по-друге, для виводу повідомлень, що полегшують розуміння того, на якій же стадії обробки знаходиться в даний час програма (чи на початку деякої процедури, чи виконується деякий метод і т. д.).

2.9.6.Діалогове вікно Event Tracking

При налагодженні програми іноді необхідно простежити за черговістю виникнення подій, переданих на обробку різним об'єктам. Часом виявляється, що причина неправильної роботи програми криється саме в невірному алгоритмі обробки подій, що реально виникають не в тій послідовності, як представлялося при проектуванні додатка. Проаналізувати послідовність виникнення подій допоможе діалогове вікно Event Tracking.

Знаходячись у режимі налагодження, виберіть команду ToolsEvent Tracking — і це вікно відкриється, як показано на Малюнок 21.

У верхній частині вікна розташовані елементи керування, що дозволяють вибрати ті події, що планується відслідковувати. За замовчуванням вважається, що всі події попередньо обрані, але режим спостереження не включений. Власне режим спостереження за подіями включається прапорцем Turn event tracking on у самому верху вікна. Нижче знаходяться два списки – Available events (Доступні події) і Events to track (події, що відслідковуються). Для того щоб перенести деяку подія з одного списку в іншій, виберіть його і клацніть на одній із кнопок зі стрілками, що знаходяться між списками. Якщо ж двічі клацнути на події в одному зі списків, то воно без зайвих турбот відразу “перебереться” в іншій.