Улучшенная загрузка символов кода отладчиком Visual Studio 2012
Пакет обновления 1 для Visual Studio 2012 содержит улучшения отладчика, связанные с загрузкой символов и исходного кода. Эти улучшения можно разделить на четыре категории:
- Улучшения производительности.
- Целевая страница No Source (Нет источника).
- Контекстное меню загрузки символов.
- Диалоговое окно выбора исходного символа.
Улучшения производительности
Заметного увеличения производительности удалось достичь за счет:
- Агрессивного кэширования символов.
- Улучшения алгоритма распознавания ошибочных путей к символам (теперь эта процедура занимает меньше времени).
Ранее из-за ошибки в пути к символам возникала задержка не менее 30 секунд, прежде чем истекало время ожидания запроса. Сейчас отладчик настроен так, чтобы выявлять причины длительных и ненужных задержек при загрузке символов: недоступность сервера символов, неверный путь к кэшу, неверное расположение сервера символов и т. п. Улучшения позволили сократить до нескольких секунд время ожидания запроса, в течение которого отладчик выбирает вариант обработки ошибочной ситуации. Время между выявлением ошибки и окончанием периода ожидания запроса сократилось в среднем с 30 до 3 секунд.
Целевая страницы No Source (Нет источника)
Если в процессе отладки недоступен исходный файл на локальном диске или отсутствует необходимый двоичный файл, то отладка прекращается и браузер перенаправляет пользователя на страницу No Symbols Loaded (Символы не загружены). Ранее функциональность этой страницы была ограничена: было непонятно, почему она открылась, поскольку на ней отображался только исходный код. В настоящее время существует 10 причин появления этой страницы.
- Двоичный файл не загружен (отладка прекращена).
- Символ не загружен.
- Символ не загружен, поскольку отсутствует в списке подключенных модулей.
- Символ не загружен, поскольку имеется в списке отключенных модулей.
- Пропущена загрузка символов для оптимизированных модулей в режиме Just My Code (Только мой код).
- Источник не найден либо тип источника не совпадает.
- Источник недоступен в файле .pdb (например, файлы символов, взятые с общедоступного сервера символов, неполные).
- Остановка во внешнем программном коде (должен быть включен режим Just My Code).
- Программный код не выполняется (отдельные вспомогательные потоки работают, но код не выполняется). При отладке jscript это означает, что потоком не выполняется код jscript.
- При просмотре потока в файле журнала IntelliTrace обнаруживается, что символ не загружен.
Установив пакет обновлений 1 для Visual Studio 2012, разработчик замечает значительное сокращение времени, необходимого для перенаправления на страницу Symbol not loaded (Символы не загружены). Это связано с тем, что быстрее определяются и отбрасываются ошибочные пути к символам. На этой странице приведены причины ошибки при загрузке источника. Кроме того, улучшен внешний вид страницы, добавлены средства прямого поиска файлов pdb, отображаются дополнительные сведения о необходимых отладчику файлах. Теперь для просмотра и изменения параметров не нужно последовательно открывать меню Tools (Инструменты) ->Options (Настройки)->Debugger (Отладчик)->Symbols page (Страница символов).
Рисунок 1. Снимок экрана показывает ожидаемый режим работы программы, если в коде возникает исключение из-за того, что не настроен путь к символам
Загрузка контекстных меню символов
Ранее в контекстном меню, связанном с символами, размещалось около девяти элементов. С выходом обновления 1 для Visual Studio 2012 их количество сократилось до четырех. Теперь меню стало менее запутанным, что позволило упростить работу пользователей.
Рисунок 2. Старое контекстное меню
Рисунок 3. Новое контекстное меню
Диалоговое окно выбора исходного сервера
Если настроить параметр Enable source server support (Включить поддержку исходного сервера) и начать отладку, то система безопасности Visual Studio предупредит о том, что предпринята попытка загрузить исходный код из TFS.
Рисунок 4. Включение поддержки исходного сервера в меню Tools->Options->Debugging (Инструменты->Параметры->Отладка)
Ранее в диалоговом окне системы безопасности были доступны только два варианта: отмена запуска и разрешение на запуск. Пользователи отправили нам множество отзывов с просьбой отключить диалоговое окно системы безопасности Visual Studio при обращении к исходному серверу (и заодно предложили обходной путь для решения этой проблемы). С выпуском обновления 1 для Visual Studio 2012 в это диалоговое окно были добавлены дополнительные варианты; теперь пользователи могут указать нужное действие и сделать его командой по умолчанию, предупреждение больше не появится.
Рисунок 5. Диалоговое окно предупреждения системы безопасности с вариантами действий
Заключение
Рекомендуем вам обратиться к следующим ресурсам:
- Видеоролик: «Приемы и методы работы: добавление поддержки символов и исходного сервера в Team Foundation Server»
- Блог «Поддержка исходного сервера и сервера символов в TFS»
Мы следим за всеми комментариями, которые вы оставляете ниже, и с нетерпением ждем ваших новых вопросов и отзывов.
Авторы
Автор этого материала –– Тарун Арора (Tarun Arora ) (ALM MVP), соавторы –– Марк Пэйн и другие участники команды разработчиков отладчика Visual Studio. Тарун Арора –– сертифицированный разработчик Microsoft в области корпоративных приложений. Он много путешествовал по миру, набираясь знаний и опыта, работал в составе самых разных в культурном и языковом отношении групп программистов. У Таруна более пяти лет опыта создания решений в сфере продажи энергоресурсов и управления рисками для ведущих торговых компаний и банков. Он всегда стремился к глубокому пониманию новейших технологий, за что был удостоен звания Microsoft Community Contributor.