Microsoft Visual Studio Debugger

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

Microsoft Visual Studio Debuggerзневаджувач, що входить до складу всіх версій Microsoft Visual Studio. Спочатку цей зневаджувач значну частку свого підходу і функціональності перейняв від CodeView, окремого текстового зневаджувача, який поставлявся з Microsoft Visual C++ версії 1.5 і нижче.

Можливості

Серед найбільш просунутих можливостей, що з'явилися в останніх версіях зневаджувача, можна відзначити:

  • Повну символьну і сирцеву інтеграцію
  • Прив'язування до і відв'язування від процесів
  • Вбудоване зневадження програм, написаних на мовах .NET і природних мовах для Windows, (наприклад, виклики з C# в C++)
  • Можливість зневадження з віддаленої машини
  • Повна підтримка C++, включаючи шаблони і стандартну бібліотеку
  • Зневадження вебсервісів ASP.NET
  • Єдиний стандарт для просунутих можливостей точок зупину, включаючи умови, адреси, дані
  • Безліч способів представлення стану програм і даних, включаючи кілька вікон перегляду, ниті, стек викликів та модулі
  • Відображення використовуваної бібліотеки та користувацьких типів даних можна налаштовувати (наприклад, для показу вмісту контейнерного класу докладніше, ніж просто показувати його основну структуру)
  • Можливість керувати за допомогою макросів або скриптів. Можна застосовувати будь-яку мову, котра може взаїмодіяти з COM
  • Підтримка принципу Виправ і продовжуй (англ. Edit and continue), що дозволяє змінювати початковий код і його перекомпіляцію без перезапуску програми (тільки для 32-бітних застосунків)
  • Локальне та віддалене зневадження збережених процедур SQL на підтримуваних версіях Microsoft SQL Server.

Недоліки

Основним недоліком Visual Studio Debugger є неможливість відстежувати в коді режим ядра. Зневадження у Windows в режимі ядра в загальному випадку виконується при використанні WinDbg, KD або SoftICE.

Visual Studio Debugger також не має змоги відстежувати лямбда-вирази та Linq через їхню підвищену складність. Проте, більшість розробників, що працюють з лямбда-виразами, можуть стежити за даними через кілька вікон спостереження.