+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Visual Studio Enterprise 2019 Time Travel Debugging preview version

Visual Studio Enterprise 2019 Time Travel Debugging preview version

Time Travel Debugging (TTD) у Visual Studio Enterprise 2019 дозволяє записувати виконання веб-програми, запущеної на віртуальній машині Azure, а потім точно відновлювати та відтворювати алгоритм. TTD інтегрується з нашою пропозицією Snapshot Debugger і дозволяє вам перемотувати та відтворювати кожен рядок коду скільки завгодно раз, допомагаючи ідентифікувати та передбачати проблеми, які можуть виникнути тільки в бойових середовищах.

Найбільш ефективний тип налагодження часто відбувається у так званому внутрішньому циклі. Коли ви переглядаєте та налагоджуєте код локально, перш ніж ви перейдете до керування версіями. Проблеми, з якими ми стикаємося під час розробки внутрішнього циклу, зазвичай легко зрозуміти і діагностувати, тому що вони доступні і повторювані.

Microsoft оголосив про випуск Time Travel Debugging (TTD) у Visual Studio Enterprise. З TTD Microsoft надає можливість записувати код, виконаний у робочому середовищі, і відтворювати шлях виконання всередині Visual Studio. TTD також дає вам можливість рухатися вперед і назад у часі, начебто ви виконували локальне налагодження «внутрішнього циклу». Ви також отримуєте доступ до важливих функцій налагодження, таких як locals і стек викликів.

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

Time Travel Debugging (TTD) — це рішення для зворотного налагодження, яке дозволяє записувати виконання коду в додатку або процесі та відтворювати його як вперед, так і назад. TTD покращує налагодження, тому що ви можете повернутися назад у часі, щоб краще зрозуміти умови, що призводять до конкретної помилки. Крім того, ви можете відтворити кілька разів, щоб зрозуміти, як краще виправити проблему. Технологія TTD була нещодавно представлена ​​у прев'ю-версії WinDbg для сценаріїв з нативним кодом.

Microsoft розширив Snapshot Debugger за допомогою TTD, щоб ви могли записувати програми у міру їх виконання. Потім цей запис можна відтворити у Visual Studio Enterprise 2019, де ви можете перемотувати та відтворювати кожен рядок коду стільки разів, скільки захочете. TTD робить запис у потоці, який відповідає умовам snappoint і зазвичай виконується до кінця методу. Але якщо до закінчення методу після snappoint є await, запис буде зупинено. Ця функція буде превью для випуску Visual Studio 2019 з діючою ліцензією. Ми плануємо додати більше сценаріїв TTD до майбутніх оновлень.

Попередній перегляд Time Travel Debugging може бути включений до останньої версії Visual Studio Enterprise 2019 для віртуальних машин Azure під керуванням ОС Windows з ASP.NET (4.8+).

Після встановлення останньої версії Visual Studio Enterprise виконайте такі кроки:

1. Відкрийте проект, який потрібно Time Travel Debug — переконайтеся, що у вас є та ж версія вихідного коду, яка опублікована на віртуальній машині Azure.

2. Виберіть Debug > Attach Snapshot Debugger і виберіть віртуальну машину Azure, на якій розгорнуть ваш проект разом з обліковим записом сховища Azure. При першій спробі підключення вам потрібно встановити розширення сайту Snapshot Debugger.

3. Виберіть параметр Time Travel Debugging і натисніть кнопку Attach. Як тільки Visual Studio перейде у режим Snapshot Debugger, вона зможе вести запис за допомогою TTD.

4. Створіть snappoint та налаштуйте його для включення Time Travel Debugging. Натисніть Start\Update Collection.

5. Після того, як ваш Snapshot був зібраний, натисніть View Snapshot, і ви зможете використовувати панель команд для переходу вперед і назад в межах записаного методу.

Обмеження прев'ю-версії TTD
На початковій прев'ю-стадії TTD ми підтримуватимемо веб-додатки AMD64, що працюють на віртуальній машині Azure. Ми очікуємо, що запис додасть значні накладні витрати вашому запущеному процесу, уповільнюючи його залежно від розміру процесу кількості активних потоків. Ми також очікуємо на погіршення налагодження в деяких з наступних сценаріїв:

  • Під час фази ущільнення GC.
  • Перехід через оптимізований метод, наприклад, коли ви входите до методу, який не містить snappoint.
  • Якщо ваша програма внутрішньо завантажує або вивантажує домени програм.
  • Запис відбувається лише у потоці, який був викликаний snappoint. Код, який згодом впливає на альтернативні потоки, також буде погіршено.

Зверніть увагу: ми також не будемо записувати асинхронні причинно-наслідкові зв'язки.

Під час попереднього тестування Microsoft виявив, що розмір файлу TTD варіювався від декількох сотень мегабайт до декількох гігабайт залежно від тривалості сеансу та тривалості роботи веб-програми. Однак файли, створені TTD, будуть очищені після завершення сеансу Snapshot Debugger та ініціації перезапуску пулу додатків. Для попереднього випуску Microsoft також рекомендує використовувати віртуальну машину з мінімум 8 ГБ ОЗУ.

Інші новини