- Visual Studio та VS Code поєднують класичні інструменти налагодження з функціями штучного інтелекту, такими як Copilot, IntelliCode та Copilot Chat, для оптимізації виправлення помилок та створення тестів.
- Розширені типи точок зупинки, багатоцільові сесії, профілювання та інтеграція з Test Explorer спрощують діагностику та оптимізацію поведінки програм.
- Помічники штучного інтелекту, такі як GitHub Copilot, DotRush та зовнішні багатоагентні платформи, допомагають генерувати тести, пояснювати збої, пропонувати виправлення та переглядати код у великих масштабах.
- Вибір правильного поєднання вбудованих та сторонніх інструментів штучного інтелекту дозволяє командам підвищити надійність, продуктивність та безпеку, не відмовляючись від знайомих робочих процесів Visual Studio.

Налагодження та тестування у Visual Studio та Visual Studio Code еволюціонували від класичних точок зупинки та вікон спостереження до екосистеми, що працює на основі помічників штучного інтелекту, інтелектуальних розширень та потужних профайлерів. Замість того, щоб витрачати години на перехід рядок за рядком, тепер ви можете покластися на такі інструменти, як GitHub Copilot, IntelliCode, Copilot Chat та нову хвилю помічників агентного коду (Інструменти штучного інтелекту для налагодження та розробки), які допомагають налаштовувати налагоджувачі, писати та запускати тести, профілювати продуктивність і навіть автоматично виконувати виправлення.
Якщо ви працюєте з C#, .NET, JavaScript, TypeScript або будь-яким іншим сучасним стеком, вам доступний багатий набір інструментів, який поєднує знайомий налагоджувач Visual Studio з інструкціями на основі штучного інтелекту, автоматизованою генерацією тестів та перевіркою коду. У цьому посібнику ми розглянемо, як працює налагодження у Visual Studio Code та повному середовищі розробки Visual Studio IDE, як штучний інтелект підключається до цих робочих процесів, а також які зовнішні помічники можуть значно покращити налагодження та тестування, не прив'язуючи вас до одного постачальника.
Основи налагодження у Visual Studio Code
Visual Studio Code постачається з першокласною підтримкою налагодження для JavaScript, TypeScript та Node.js (див. Підручник з Node.js для початківців), і може бути розширений майже на будь-яку мову за допомогою розширень торговельного майданчика. Основний робочий процес залишається тим самим: налаштування цілі налагодження, встановлення точок зупинки, запуск сеансу та перевірка стану програми під час її виконання.
Інтерфейс користувача налагоджувача у VS Code організований навколо подання «Виконати та налагодити», компактної панелі інструментів, консолі налагодження та бічних панелей для стеку викликів, змінних та виразів спостереження. Разом вони дозволяють запускати та керувати сеансами, перемикатися між стековими фреймами та відстежувати важливі значення, поки ваш код зупиняється на точках зупинки.
Перш ніж ви зможете налагоджувати більшість проектів, ви або покладаєтеся на автоматичну конфігурацію VS Code, або визначаєте спеціальний файл launch.json, який описує, як запускати вашу програму під налагоджувачем. Прості скрипти часто запускаються безпосередньо через F5, тоді як складні серверні частини, багатосервісні програми або віддалені процеси вимагають чітких налаштувань запуску та параметрів підключення.
Початок сеансу зазвичай такий же простий, як відкриття файлу, що містить вашу точку входу, та натискання клавіші F5 або вибір «Виконати та налагодити» на бічній панелі. VS Code запитає, який налагоджувач використовувати (наприклад, Node, .NET, Python або C++), а потім відкриє КОНСОЛЬ НАЛАГОДЖЕННЯ, змінить колір рядка стану та покаже поточну активну конфігурацію, щоб ви завжди знали, що запущено.
Після призупинення виконання з'являється панель інструментів налагодження зі стандартними елементами керування для продовження, призупинення, перемикання між режимами, початку, виходу, перезапуску або зупинки програми. Якщо ви налагоджуєте кілька цільових об'єктів одночасно, таких як клієнт і сервер, панель інструментів дозволяє вибрати, який сеанс активний, щоб ваші команди кроків застосовувалися до правильного процесу.
Опанування точок зупинки, точок журналювання та розширених функцій налагодження
Точки зупинки все ще є основою будь-якого робочого процесу налагодження у VS Code, але редактор надає набагато більше, ніж просто розриви рядків. Ви можете клацнути в лівому полі, щоб переключитися між стандартними точками зупинки, натиснути F9 на поточному рядку або централізовано керувати ними в розділі ТОЧКИ ЗАСТАВИ (BREAKPOINTS) вікна «Виконати та налагодити».
Візуальні підказки допомагають вам одразу зрозуміти стан кожної точки зупинки: суцільні червоні кола означають активну, приглушені сірі кола – вимкнену, а порожні значки показують точки зупинки, які не вдалося належним чином зареєструвати за допомогою цільового налагоджувача. Для кращої видимості ви навіть можете ввімкнути маркери на лінійці огляду, щоб активні точки у вашому коді виділялися під час прокручування.
Умовні точки зупинки дозволяють призупиняти виконання лише тоді, коли певний вираз є істинним, коли досягнуто заданого порогу кількості влучань або коли вже спрацювала інша точка зупинки. Ви додаєте їх, клацнувши правою кнопкою миші на полі та вибравши «Додати умовну точку зупинки», а потім вказавши потрібну умову, кількість звернень або зв’язок тригера.
Тригеровані точки зупинки особливо корисні для нестабільних збоїв, які виникають лише після певної передумови, такої як певна послідовність запитів або першим викликом певного методу. Ви підключаєте їх, вибравши «Додати тригерну точку зупинки» та прив’язавши їх до точки зупинки, яка має їх увімкнути.
Вбудовані точки зупинки вирішують проблему мінімізованих або надзвичайно щільних рядків коду, дозволяючи прикріплювати точку зупинки до певного стовпця, а не лише до рядка. Використовуючи Shift+F9 під час сеансу налагодження, ви можете розмістити їх саме там, де потрібно, навіть якщо в одному рядку є кілька операторів, а також вони можуть містити умови, якщо потрібно.
Точки зупинки функцій та даних йдуть далі, дозволяючи зупиняти роботу, коли виконується виклик іменованої функції або коли здійснюється доступ до певної змінної, вона зчитується чи змінюється. Точки зупинки функцій вводяться із заголовка BREAKPOINTS разом із назвою функції, тоді як точки зупинки даних зазвичай створюються з представлення VARIABLES за допомогою таких команд, як Break on Value Change або Break on Access.
Точки журналу поводяться як «нерозривні» точки зупинки: замість зупинки виконання вони виводять власне повідомлення на консоль налагодження щоразу, коли виконання проходить через них. Ви можете включати вирази у фігурних дужках у шаблон повідомлення, щоб отримувати оперативну аналітику, подібну до тимчасового ведення журналу, не змінюючи вихідний код.
Перевірка стану: змінні, вирази спостереження та консоль налагодження
Коли ваша програма призупинена, VS Code надає вам кілька способів перевірки та маніпулювання станом, щоб ви могли швидко перевіряти гіпотези. У розділі VARIABLES (ЗМІННІ) у поданні Run and Debug (Виконати та налагодити) перераховано локальні змінні, аргументи та глобальні змінні для вибраного фрейму стека, а наведення курсора на символи в редакторі відобразить підказки з їхніми поточними значеннями.
Ви можете змінювати змінні безпосередньо з панелі ЗМІННІ, вибравши "Встановити значення", що зручно для дослідження того, як різні вхідні дані впливають на поведінку, без перезапуску програми. Команди «Копіювати значення» та «Копіювати як вираз» дозволяють легко вставляти точні вирази в інші місця, особливо у список спостереження або консоль налагодження.
Розділ WATCH дозволяє відстежувати довільні вирази в різних кроках та стекових фреймах, зберігаючи цілеспрямований список значень, які дійсно важливі для виявленої помилки. Ви можете фільтрувати змінні за назвою або значенням за допомогою спеціального поєднання клавіш, щоб довгі списки залишалися зручними для керування.
Консоль налагодження також виконує функцію REPL, дозволяючи вам обчислювати довільні вирази в контексті вибраного фрейму. Ви отримуєте розфарбовування синтаксису, відступи та редагування з урахуванням мови, а також багаторядковий ввід за допомогою Shift+Enter, що ідеально підходить для випробування виправлень або виклику допоміжних функцій на льоту.
Багатоцільове налагодження у VS Code починається, коли ви запускаєте кілька сеансів налагодження одночасно, наприклад, клієнт браузера та сервер Node.js або різні мікросервіси. Кожен сеанс відображається як елемент верхнього рівня у вікні перегляду СТЕК ВИКЛИКІВ, панель інструментів показує, який з них активний, а всі дії виконуються у вибраному сеансі, доки ви не перемкнетеся.
Розширення віддаленого налагодження та налагоджувача у VS Code

Підтримка віддаленого налагодження у VS Code залежить від розширення мови, яке ви використовуєте, за одним помітним вбудованим винятком: налагоджувач Node.js може підключатися до віддалених процесів "з коробки". Для інших середовищ виконання, таких як Python, .NET, Go або PHP, ви встановлюєте відповідні розширення налагодження та дотримуєтеся їхньої документації для віддалених або контейнерних сценаріїв.
Visual Studio Marketplace містить розширення налагоджувача, які додають підтримку середовищ виконання, таких як C#, C++, Python, PHP, Ruby, Go, PowerShell та інших. Багато з них чудово інтегруються з launch.json, підтримують розширені функції, такі як точки зупинки даних, і навіть підключаються до оркестраторів контейнерів або хмарних налагоджувачів.
Якщо вам потрібна власна поведінка, VS Code також дозволяє створити власне розширення налагоджувача, використовуючи документацію з розширення налагоджувача та зразки проектів як відправну точку. Це особливо цінно для власних середовищ виконання або внутрішніх фреймворків, де немає готових інструментів.
Налагодження та тестування у повній версії Visual Studio з Test Explorer
У повному середовищі розробки Visual Studio модульне тестування та налагодження тісно інтегровані через Test Explorer, що спрощує запуск та покрокове виконання тестів одночасно з тестованим кодом. Ви просто встановлюєте точки зупинки у своїх методах тестування, вибираєте потрібні вам тести в Test Explorer і починаєте сеанс налагодження безпосередньо звідти.
Коли ви вибираєте «Налагодження» для одного або кількох тестів, Visual Studio запускає засіб виконання тестів під налагоджувачем, щоб ви могли плавно переходити між тестовим кодом та реалізацією. Цей потік ідеально підходить для TDD, для дослідження невдалих тестів або для перевірки складних граничних випадків, де потрібен детальний контроль.
Visual Studio 2022 розширює цей робочий процес глибоким профілюванням продуктивності для окремих методів тестування, починаючи з версії 17.8, де до тесту можна підключити будь-який відповідний інструмент Performance Profiler. Ви можете клацнути правою кнопкою миші метод у Провіднику тестів, вибрати «Профіль», вибрати профайлер, такий як Інструментація або Використання процесора, та проаналізувати, чому тест повільний або вимагає багато пам’яті.
Ізольоване профілювання тестів надзвичайно корисне для підтвердження того, що мікрооптимізація дійсно окупається, оскільки ви можете запустити профайлер, налаштувати реалізацію та виміряти вплив у вузькому циклі. Це дозволяє ґрунтувати роботу з ефективності на реальних даних, а не на припущеннях.
Допомога ШІ для налагодження тестів за допомогою GitHub Copilot у Visual Studio
В останніх випусках Visual Studio представлені функції на базі GitHub Copilot, спеціально розроблені для налагодження та виправлення невдалих тестів. Починаючи з Visual Studio 2022 17.12 Preview 2, якщо у вас є активна підписка на Copilot, ви можете попросити IDE пояснити або налагодити невдалі тести безпосередньо з Test Explorer.
Дві контекстно-залежні команди з’являються, коли ви клацаєте правою кнопкою миші на невдалому тесті: «Пояснити невдачу за допомогою Copilot» та «Налагодження за допомогою Copilot». Перший дає пояснення природною мовою, чому твердження не вдалося, на основі тестового виводу та коду, тоді як другий керує більш інтерактивним процесом налагодження.
Коли ви вирішуєте налагоджувати за допомогою Copilot, Visual Studio запускає агент налагоджувача Copilot, який поводиться подібно до парного програмування ШІ, зосередженого саме на невдалому тесті. Він пропонує гіпотезу про першопричину, застосовує цільові редагування, повторно запускає тест під налагоджувачем та виконує ітерації за потреби, доки несправність не буде вирішена або не знадобляться подальші введення даних.
Протягом цього циклу агент також генерує детальний звіт про те, що було змінено та чому, щоб ви могли переглянути різницю, зрозуміти її обґрунтування та вирішити, чи слід зберегти виправлення, чи налаштувати його. Ви залишаєтеся під контролем, але важку роботу з налагодження методом проб і помилок виконує штучний інтелект.
Ще один процес налагодження за допомогою Copilot у Visual Studio надає «план налагодження» для складних проблем, автоматично встановлює відповідні точки зупинки та вирази спостереження, а також запускає сеанс для вас. Коли налагоджувач призупиняється, Copilot перевіряє активні значення, вирішує, чи продовжувати покрокове виконання, чи запропонувати зміну коду, і підтримує розмову в чаті Copilot, доки ви не досягнете прохідного стану.
GitHub Copilot та Copilot Chat для щоденного налагодження та тестування
Окрім цих спеціалізованих процесів, GitHub Copilot у Visual Studio та VS Code постійно допомагає вам під час написання, налагодження та тестування коду. Він пропонує вбудовані автодоповнення, які можуть охоплювати цілі рядки або багаторядкові блоки, часто вгадуючи реалізацію методу або налаштування тесту лише з коментаря або сигнатури функції.
Copilot Chat додає інтерактивну бічну панель та вбудовану функцію «Запитай Copilot», що дозволяє ставити запитання простою англійською мовою, наприклад, «чому тут виникає цей виняток?» або «напишіть xUnit-тести для цього методу з урахуванням граничних випадків». Асистент відповідає анотованим кодом, поясненнями та часто безпосередньо пропонує методи тестування.
Оскільки Copilot має доступ до поточного файлу та навколишнього контексту, його відповіді зазвичай є більш релевантними, ніж звичайний веб-пошук, особливо коли ви працюєте з великою або незнайомою базою коду. Ви можете уточнити пропозиції, запросити альтернативні підходи або попросити його зосередитися виключно на написанні тестів, налагодженні чи підказках щодо профілювання.
Одним із недооцінених застосувань Copilot Chat є аналіз трасування стека, журналу помилок або виводу профайлера та перетворення його на чітку послідовність кроків для відтворення та виправлення. Це скорочує проміжок часу між виявленням несправності та формуванням надійної стратегії налагодження.
IntelliCode: IntelliSense на основі штучного інтелекту, який допомагає запобігати помилкам
Microsoft IntelliCode доповнює Copilot, покращуючи IntelliSense пропозиціями на основі ранжування штучного інтелекту та автозаповненням цілих рядків на основі шаблонів, отриманих з тисяч публічних репозиторіїв. Замість того, щоб показувати всі можливі члени в алфавітному порядку, IntelliCode розміщує найімовірніші та найправильніші з них зверху, позначені зірочкою.
Таке контекстно-залежне ранжування ненав’язливо покращує налагодження, оскільки ви з меншою ймовірністю виберете неправильне перевантаження або властивість під час налаштування коду, що, у свою чергу, зменшує кількість проблем під час виконання, які вам доведеться вирішувати пізніше. Це як мовчазний рецензент, який підштовхує вас до API та шаблонів, що зазвичай використовуються правильно.
IntelliCode також може виявляти, коли ви вносите однакові зміни в кількох місцях, і пропонує автоматичне виправлення повторних редагувань, щоб ви не пропустили місце та не спричинили непослідовну поведінку. Це особливо актуально під час сеансів виправлення помилок, коли шаблон необхідно оновити в багатьох файлах.
Оскільки IntelliCode працює локально в середовищі Visual Studio, йому не потрібно надсилати ваш код до зовнішніх служб для пропозицій ранжування, що покращує конфіденційність, водночас забезпечуючи інтелектуальне автодоповнення. Він підтримує такі мови, як C#, XAML, C++, JavaScript, TypeScript та Visual Basic у середовищі розробки Visual Studio.
DotRush: легке налагодження, тестування та профілювання C# у VS Code
Для розробників, які люблять VS Code, але потребують потужного досвіду роботи з C#, DotRush — це розширення з відкритим кодом, яке пропонує можливості налагодження, тестування та профілювання, подібні до повноцінного середовища Visual Studio. Він легкий, швидкий і працює не лише у VS Code, але й у сумісних форках, Neovim та Zed.
DotRush пропонує стандартний набір IntelliSense (автодоповнення, перехід до визначення, пошук посилань, рефакторинг, перейменування) разом із вбудованим декомпілятором, який може відображати фактичний код C# для збірок, включаючи основні системні бібліотеки. Це саме по собі є сильним союзником у налагодженні, коли вам потрібно зрозуміти поведінку фреймворку.
Розширення аналізує всі цільові фреймворки в багатоцільовому проекті одночасно, тому ви можете бачити помилки для .NET Framework та .NET Core без перемикання контексту. Це економить час під час налагодження кросплатформного коду, оскільки несумісності виявляються одразу.
DotRush використовує VSDBG для VS Code та NetCoreDbg для інших редакторів, а ваші існуючі файли launch.json з класичного розширення C# повністю сумісні. Ви можете просто натиснути F5, вибрати .NET Core Debugger і дозволити розширенню зібрати та запустити проект для налагодження без складного налаштування.
Ви можете вибрати автозавантажувальний проект, клацнувши правою кнопкою миші на його файлі або папці та позначивши його як «Автозавантажувальний проект», що відображатиме поведінку повноцінної версії Visual Studio та полегшить налагодження багатопроектних рішень. DotRush також враховує Properties\LaunchSettings.json під час запуску сеансу налагодження, навіть з NetCoreDbg.
Крім того, DotRush включає підтримку налагодження Unity та Godot, вбудований Test Explorer для NUnit та xUnit, а також інструменти профілювання .NET, які можуть відстежувати виконання або записувати дампи купи. Сеанси профілювання можна запускати разом із налагоджувачем або приєднувати до існуючих процесів, а звіти зберігати в каталозі проекту для подальшої перевірки.
Ширший спектр помічників ШІ-кодування для налагодження та тестування
Вбудований штучний інтелект Visual Studio — це лише частина історії; існує ціла екосистема зовнішніх помічників кодування на основі штучного інтелекту, які інтегруються з VS Code, JetBrains та іншими середовищами, щоб допомогти з налагодженням, тестуванням та якістю коду. Ці інструменти дуже різняться за напрямком, від чистого автозаповнення до повноцінних платформ багатоагентного перегляду коду.
Такі платформи, як Qodo, зосереджуються на якості коду в усьому SDLC, використовуючи спеціалізовані агенти для генерації коду та тестів, покращення охоплення тестами та виконання перевірок запитів на зняття (pull requests) на основі штучного інтелекту. Вони інтегруються з IDE, терміналами та конвеєрами неперевершеної інтеграції (CI), щоб код, тести та коментарі до рецензування відповідали організаційним стандартам.
Інші помічники, такі як GitHub Copilot (поза Visual Studio), Tabnine, Replit's AI, Amazon Q Developer, AskCodi, Sourcegraph Cody, DeepCode AI, Figstack, CodeGeeX та CodeGPT, кожен привносить свої сильні сторони у налагодження та тестування. Деякі зосереджені на пропонуванні синтаксису в режимі реального часу та рефакторингу, інші — на скануванні безпеки, поясненні коду, міжмовному перекладі або автоматизованому створенні тестів.
Агентно-орієнтовані інструменти, такі як Cline, Augment Code, Gemini CLI та Qwen3-Coder, розвивають цю ідею далі, плануючи багатоетапні завдання, редагуючи файли, запускаючи команди терміналу та повторюючи відгуки майже як молодший інженер, який працює під вашим керівництвом. Це може бути особливо потужним для повторюваних завдань налагодження або масового рефакторингу, які в іншому випадку були б виснажливими.
Оцінюючи ці помічники для сценаріїв налагодження, варто враховувати такі фактори, як мовне покриття, інтеграція з IDE, конфіденційність та локальні опції, здатність розуміти великі бази коду, а також те, наскільки добре вони обробляють генерацію тестів, перевірки безпеки та підказки щодо продуктивності. Корпоративні команди часто так само дбають про управління та відповідність вимогам, як і про можливості штучного інтелекту.
Помічники кодування на основі штучного інтелекту не замінюють надійних навичок налагодження чи продуманого дизайну тестів, але вони швидко стають незамінними супутниками, які обробляють шаблонні завдання, виявляють неочевидні проблеми та допомагають вам зосередитися на тих частинах проблеми, які дійсно потребують людського судження. За належного використання вони скорочують цикли зворотного зв'язку та роблять Visual Studio та VS Code набагато чутливішими до того, як ви насправді працюєте.
Об'єднуючи все це, сучасне налагодження та тестування у Visual Studio зводиться не стільки до запам'ятовування кожного скорочення, скільки до поєднання класичних інструментів (точок зупинки, вікон спостереження, профайлерів) з помічниками штучного інтелекту, такими як Copilot, IntelliCode, DotRush та зовнішніми агентами, щоб налаштування, діагностика та ітерації відбувалися майже безперервно під час написання коду. Щойно ви освоїте поєднання інтерфейсу налагоджувача з аналізом за допомогою штучного інтелекту, генерацією тестів та профілюванням продуктивності, зусилля, необхідні для виявлення помилок, розуміння збоїв та підтримки справності набору тестів, різко знизяться.

