Відлагодження
Після підготовки програми і виправлення синтаксичних помилок (що після невеликого періоду
практичного зайняття виконується досить швидко) настає етап тестування для перевірки правильності
роботи програми і виявлення помилок. Ознакою наявності помилки в програмі є неправильне виконання
тесту (під час тесту виконання програми завершується аварійно або результати виконання програми не
співпадають з прогнозованими результатами тесту). Процес виявлення причин виявленої помилки,
визначення місця (локалізація) помилки в програмі і виправлення помилково реалізованого програмного
коду зазвичай називається відладкою. Як правило, при відладці існує деяка попередня стадія, під час якої
програміст висуває ті або інші пропозиції про причини помилкової роботи і проводить візуальний аналіз
(інспекцію) програмного коду, – на жаль, цією формою відладки багато програмістів нехтують, хоча
ефективність такого способу відладки є досить високою. Якщо при інспекції коду виявити помилки не
вдається, далі настає основний спосіб відладки – відлагоджувальне виконання програми (чи трасування), в
ході якого робота програми може бути призупинена для перегляду значень тих або інших змінних
програми з метою виявлення ситуацій, коли ці значення не відповідають передбачуваних. Тим самим,
завдання трасування – виявлення інформаційних ознак прояву помилки.
Розглянемо далі можливості середовища Visual Studio для забезпечення трасування програм при
пошуку і виправлення помилок.
Покрокове виконання програми. Для виконання програми в покроковому режимі (у режимі трасування)
використовуються чотири команди, які доступні з меню Debug, панелі інструментів Debug і клавіш швидкого
виклику:
−
−
−
−
Команда Step Into (клавіша F11) забезпечує послідовне, рядок за рядком, виконання програмного
коду програми (включаючи вміст методів, що викликаються, тобто заходячи в середину методів),
Команда Step Over (клавіша F10) забезпечує, як і попередня команда Step Into, послідовне
виконання програми, але при цьому виклик методів розглядається як один неділимий крок
(тобто без переходу всередину методів, що викликаються),
Команда Step Out (клавіша Shift+F11) забезпечує виконання усіх рядків програмного коду
поточного виконуваного методу, що залишилися, без зупинки, дозволяючи виконати швидкий
перехід в останню точку виклику,
Команда Run to Cursor (клавіша Ctrl+F10) забезпечує виконання без зупинки програмного коду
між поточним рядком зупинки і позицією курсора (залежно від налаштувань параметрів
середовища Visual Studio ця команда може бути відсутньою в пункті меню Debug).
Зручним засобом вказівки точок зупинки процесу виконання програми є використання контрольних
точок (breakpoints). Для визначення контрольної точки необхідно клацнути мишкою на вертикальній смузі
зліва від потрібного рядка програмного коду; повторне клацання відміняє установки контрольної точки. В
ході виконання програми при попаданні на контрольну точку відбувається зупинка; для продовження
роботи необхідно виконати команду Continue пункту меню Debug.
Вид вікна середовища розробки у момент зупинки показаний на рис. 7.
Спостереження значень змінних. Для спостереження значень змінних у момент зупинки виконання
програми досить розташувати покажчик миші на імені змінної – в результаті значення змінної з'явиться у
вигляді спливаючої підказки (приклад висвічення значення змінної показаний на рис. 7).
Рис. 7 Вигляд середовища розробки під час зупинки виконання програми
Додаткова можливість для спостереження значень змінних полягає у використанні спеціальних вікон
спостереження:
− Вікно Autos відображає значення усіх змінних, використовуваних в поточному і передуючих рядках
точки зупинки програми; у вікні відображаються назви змінних, їх тип і значення; вікно Autos зазвичай
розташовується в нижній лівій частині екрану (рис. 7) і для його висвічення необхідно клацнути мишею на
ярличку з назвою вікна;
− Вікно Locals відрізняється від попереднього вікна Autos тим, що відображає значення усіх змінних
поточної зони видимості (тобто змінних поточного виконуваного методу або його локального блоку);
− Вікна Watch (таких вікон у момент виконання 4) відрізняються тим, що склад змінних, що
відображаються в них, може формуватися безпосередньо програмістом. Для висвічення потрібного вікна
треба послідовно виконати команди Debug->Windows->Watch->Watch<N>, де N є номер висвічуваного
вікна. Для додавання змінної у вікно спостереження треба вказати мишкою необхідну змінну, натиснути
праву кнопку миші і контекстному меню, що з'явилося, виконати команду Add Watch (така ж команда може
бути в пункті меню Debug, її наявність в меню залежить від налаштувань параметрів середовища Visual
Studio). Зручний спосіб додавання змінних у вікна спостереження полягає у використанні техніки "Узяти і
перенести" (виділити ім'я змінної, натиснути ліву кнопку миші і, не відпускаючи її, перемістити покажчик
миші у вікно спостереження, після чого відпустити конку миші). Для видалення змінних з вікна
спостереження досить виділити відповідний рядок і натиснути клавішу <Delete>;
− Близьким за призначенням до вікон Watch являється вікно Quick Watch, яке додатково дозволяє
змінювати значення спостережуваних змінних; для відкриття вікна необхідно виділити потрібну змінну і
виконати команду Quick Watch пункту меню Debug.
Окрім перерахованих вікон, може бути використане вікно this для спостереження за значеннями полів
об'єкту, метод якого виконується у нинішній момент часу, а також вікно Call Stack, в якому відображається
послідовність виклику методів, що привела до звернення до поточного виконуваного методу.
Висновки: visual studio як засіб розробки програмного забезпечення є дуже вигідним і зручним варіантом. Вона забезпечує всіма необхідними інструментами для написання, відлагоджування і реалізації програмного забезпечення. Володіє зручним інтуїтивним інтерфейсом.
