Покрокове проходження для пошуку помилки



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Покрокове проходження для пошуку помилки



Після того як в нашому прикладі відладчик, зустрівши точку зупину, перервав виконання програми, далі можна виконувати код по крокам (режим трасування). Для цього можна вибрати команду Крок із заходом (Step Into) на панелі інструментів Налагодження (Debug) (або натиснути функціональну клавішу F11). Це призведе до послідовного виконання коду по одному рядку, що дозволить вам бачити одночасно і хід виконання додатку, та стан об'єктів програми по мірі виконання коду. Якщо зробити так в нашому прикладі, то ви побачите помилку: число 0, привласнене при оголошенні змінної фіктивно стане мінімальним.

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

Однією з більш зручних (і часто упускаємим) функціональних можливостей набору інструментів відладки є функція Виконати до поточної позиції (Run To Cursor). Вона працює в повній відповідності зі своєю назвою. Ви встановлюєте курсор на якийсь код і викликаєте цю команду (див. рис. 37).

Рис. 37. Вибір команди в виклику режиму Виконати до курсору

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

Тому функція Виконати до поточної позиції є ефективним засобом привести відладчик на ту сторінку, де ви зараз перебуваєте. На рис. 37 показана ця функція, викликана з контекстного меню.

Команда Виконати до поточної позиції працює навіть у тому випадку, коли користувач повинен активізувати якийсь фрагмент коду перед тим, як виконання дійде до положення курсора. Таким чином, фактично це - невидима тимчасова точка зупину.

Рис. 38. Виклик команди Виконати до поточної позиції

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

Команда Крок із виходом (Step Out) (SHIFT + F11) - це ще один корисний інструмент. Він дозволяє вам дати вказівку відладчику закінчити виконання поточної підпрограми (яку ви налагоджуєте) і повернутися в режим зупинки відразу після її завершення. Це дуже зручно тоді, коли ви загрузли в довгій підпрограмі, яку варто було б пропустити. Крім того, ви можете увійти в дану підпрограму для налагодження лише її частини, а потім вийти з неї.

Продовження налагодження

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

Рис. 39. Виклик команди Показати наступний оператор



Последнее изменение этой страницы: 2016-12-12; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 100.26.179.251 (0.003 с.)