Pull to refresh

VS 2010: Нововведения в отладке

Reading time5 min
Views3K
Original author: Scott Gu
Это двадцать первая статья из серии, посвященной выходу VS 2010 и .NET 4. Сегодняшний пост поведает вам о некоторых приятных улучшениях в юзабилити, которые пришли с отладчиком в VS 2010.

Отладчик VS 2010 содержит тонны отличных возможностей таких, как Intellitrace (он же исторический отладчик), новая возможность параллельной/многопоточной отладки и поддержка дампа отладки, которые заслуженно привлекают внимание, если мы говорим о новой версии.

В сегодняшнем же посте, я начну рассказывать о некоторых небольших, но тем не менее приятных моментов юзабилити во время отладки, которые появились с VS 2010.

Метки точек остановки


VS 2010 добавляет новый функционал для более удобного управления точками остановки отладчика. Одной из реально удобных возможностей является “Метки точек остановки”, они позволяют лучше сгруппировать и отфильтровать точки в вашем проекте.

В предыдущих версиях Visual Studio вам приходилось управлять каждой точкой остановки отладчика, как отдельным элементом. Управлять каждой точкой отдельно дело нудное и болезненное, особенно в крупных проектах, когда вы хотите сохранить определенные логические группы точек остановок, которые вы можете включать или отключать в зависимости от того, что вы отлаживаете. Используя новую возможность VS 2010 “метки точек остановок”, вы теперь можете задать имя этой “группе” точек и управлять ими как одной.

Группировка нескольких точек остановки вместе, используя метку

Ниже показан скриншот окна точек остановки в Visual Studio 2010. Данный список содержит все точки остановки моего проекта (в данном случае это ASP.NET MVC 2):

image

Первая и последняя точки в списке останавливают отладчик, когда создан экземпляр Controller.

Используя VS 2010, я могу выделить эти две точки, далее нажать правой кнопкой по ним и выбрать “Edit labels…” для того, чтобы задать им название.

image

Ниже показано окно, которое появляется при нажатии “Edit labels”. Мы можем использовать его для создания новой строковой метки для наших точек остановки или выбрать уже существующую метку. В нашем случае мы создадим новую метку с именем “Lifetime Management” для описания двух точек:

image

Когда мы нажмем кнопку OK, наши две выделенных точки будут сгруппированы под созданной меткой “Lifetime Management”:

image

Фильтрация и сортировка точек остановки с помощью меток

Мы можем использовать выпадающий список “Search” для быстрой фильтрации или сортировки точек остановки по метке. Ниже мы показываем только те точки, которые имеют метку “Lifetime Management”:

image

Включение/выключение точек остановки через метки

Мы так же можем включать или выключать группы точек остановки. Достаточно отфильтровать группы по меткам, Ctrl-A выделить все точки, а далее активировать или деактивировать их по надобности:

image

Импортирование/экспортирование точек остановки


Теперь VS 2010 поддерживает импортирование/экспортирование точек остановки в XML файлы и вы можете передать их другому разработчику, прикрепить к отчету об ошибках или же просто перезагрузить в дальнейшем.

Для экспортирования только определенного подмножества точек остановки, вы можете отфильтровать их по метке, а далее нажать “Export breakpoint” в окне Breakpoints:

image

Выше, я отфильтровал свои точки для экспорта только двух конкретных точек (специфичных для моей ошибки). Я могу экспортировать данные точки в XML файл, а далее приложить их к отчету об ошибках или по почте, что позволит другому разработчику легко настроить отладчик на другой машине.

Закрепляемые DataTip’ы


Visual Studio 2010 так же содержит интересную возможность называемая “закрепляемые DataTip’ы”, которые позволяют вам отслеживать переменные и значения выражений в режиме отладки.

Просто наведите на переменную или выражение в режиме отладки и вы увидите вспомогательную подсказку, которая отображает значение, а далее нажмите на новую “скрепку”, чтобы закрепить.

image

Вы можете закрепить любое количество DataTip’ов, которое считаете нужным. Вдобавок, закрепив высокоуровневые переменные, вы можете углубляться во внутренние свойства данной переменной и закреплять внутренние переменные.

Ниже я закрепил три переменных: “category”, “Request.RawUrl” и “Request.LogonUserIdentity.Name”. Обратите внимание, что последние две переменных являются внутренними свойствами объекта “Request”.

image

Привязанные комментарии для закрепленных DataTip’ов

Наводя курсор мышки на любой закрепленный DataTip, вы увидите дополнительные элементы интерфейса:

image

Нажав на кнопку комментария DataTip’a, вы сможете в необязательном порядке добавить к нему комментарий:

image

Что делает очень удобным прикреплять и отслеживать комментарии отладки:

image

Закрепленные DataTip’ы доступны в сессиях отладки и Visual Studio.

Закрепленные DataTip’s доступны в нескольких сессия отладчика. Это означает, что если вы остановите отладчик, внесете изменения в код, а далее перекомпилируете и заново запустите новую сессию отладки, то все закрепленные Datatip’ы останутся на своих прежних местах, как и комментарии, прикрепленные к ним.

Закрепленные DataTip’ы могут быть использованы в нескольких сессиях Visual Studio. Это означает, что вы можете закрыть проект, закрыть Visual Studio, а позже открыть проект и убедиться, что все закрепленные DataTi'p’ы на месте, а вместе с ними и их комментарии.

Просмотр значения предыдущей сессии отладки


Сколько раз вы останавливали отладчик, только чтобы вернутся к вашему коду и сказать:
что за х$#ня! – какое только что было значение у этой переменной???

Одной из приятных вещей у DataTip’ов является возможность отслеживать своё последнее значение из отладочной сессии и вы можете просмотреть эти значения в редакторе кода VB/C#, даже если вы вышли с режима отладки.

DataTip’ы по умолчанию скрыты, когда вы находитесь в редакторе кода и за пределами отладочной сессии. В левой части отступа редактора кода, вы обнаружите скрепки, для каждого закрепленного DataTip’a:

image

Наведя мышка на закрепленный DataTip вы увидите его на экране. Ниже на скриншоте показано, что произойдет, когда я наведу курсор на первую скрепку в редакторе, она отобразит значении последней отладочной сессии объекта “Request” и комментарий:

image

Что позволяет легче отслеживать состояние и условия переключаясь между режимами отладки и редактирования кода.

Импортирование и экспортирование закрепленных DataTip’ов


Как я упоминал ранее в данной статье, закрепленные DataTip’ы по умолчанию сохраняются для всех сессий Visual Studio.

VS 2010 так же поддерживает импортирование или экспортирование закрепленных DataTip’ов в XML файлы, которые вы можете позже передавать другим разработчикам, прикреплять к отчетам об ошибках или перезагружать в будущем.

image

Вместе с поддержкой импортирования/экспортирования точек остановки, данный функционал позволяет гораздо проще обмениваться различным разработчикам настройками отладчика и

Итоги


Visual Studio 2010 содержит ряд отличнейших нововведений для отладчика, как мелких, так и огромных.

Сегодняшний пост поведал о приятных улучшениях юзабилити отладчика. Все перечисленные выше возможности поддерживаются в Visual Studio Professional Edition (закрепляемые DataTip’ы также доступны в Visual Studio 2010 Express Editions)

Я расскажу о некоторых огромных нововведениях таких, как Intellitrace, параллельная/многопоточная отладка и анализ дампа в следующих статьях.
Tags:
Hubs:
+27
Comments30

Articles

Change theme settings