25
Практическое занятие Отладка с использованием IntelliTrace в Visual Studio Ultimate 2012 Версия практической: 11.0.51106.01 Обновление 1 Последнее обновление: 27.11.2012

Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

  • Upload
    -

  • View
    2.619

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Практическое занятие

Отладка с использованием IntelliTrace в Visual Studio Ultimate 2012

Версия практической: 11.0.51106.01 Обновление 1

Последнее обновление: 27.11.2012

Page 2: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

СОДЕРЖИМОЕ

ОПИСАНИЕ ................................................................................................................................................. 3

УПРАЖНЕНИЕ 1: ВВЕДЕНИЕ В INTELLITRACE .................................................................................... 4

УПРАЖНЕНИЕ 2: ИСПОЛЬЗОВАНИЕ INTELLITRACE С ИНФОРМАЦИЕЙ О ВЫЗОВАХ ............... 14

Page 3: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Описание

В этой практической работе вы узнаете о функции отладки IntelliTrace в Visual Studio Ultimate 2012.

Перед добавлением IntelliTrace отладка делалась с определенного момента время и шла вперед.

Если вам нужно было узнать больше информации для предыдущего вызова, то вам нужно было

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

отслеживать через большое количество точек выполнения, которые были пройдены в прошлом, и

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

определить причины проблем без необходимости воспроизводить проблему.

Примечание: Эта виртуальная машина была предварительно подготовлена, чтобы

заархивировать исходный код и символы для построения, с которыми вы будете работать. Это

гарантирует, что файлы, которые вы получите из сеанса IntelliTrace, будут соответствовать

определенному построению. Для того, чтобы лучше использовать IntelliTrace для ваших

программных приложений, следует посмотреть этот блог, который даст больше сведений и

инструкции для обеспечения IntelliTrace.

Предварительные требования

Чтобы выполнить это практическое занятие, вам необходима виртуальная машина Visual Studio

2012 предоставляемая Microsoft. Для получения дополнительной информации по получению и

использованию этой виртуальной машины, пожалуйста, см. это сообщение в блоге.

Упражнения

Это практическое занятие содержит следующие упражненния:

1. Введение в IntelliTrace

2. Использование IntelliTrace с информацией о вызовах

Примерная продолжительность практического занятия: 60 минут.

Page 4: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Упражнение 1: Введение в

IntelliTrace В этом упражнении вы увидите, как IntelliTrace может помочь в отладке сбоя данных XML на веб-

сайте ASP.NET.

Note: IntelliTrace поддерживает отладку Visual Basic и C# приложения, использующие .NET

версии 2.0, 3.0, 3.5, 4 или 4.5 (ASP.NET, Windows Forms, WPF, Windows Workflow и WCF).

IntelliTrace не поддерживает отладку C++, скриптов или неуправляемых языков. Для получения

более подробной информации о поддержке IntelliTrace, пожалуйста, обращайтесь к

документации Visual Studio 2012 на Microsoft Developer Network.

1. Зарегистрироваться как Julia. Пароли у всех пользователей P2ssw0rd.

2. Открыть Microsoft Visual Studio из Start | All Programs | Microsoft Visual Studio 2012 |

Visual Studio 2012.

3. На начальной странице нажмите Connect to Team Foundation Server…

Рисунок 1

Расположение ссылки Connect to Team Foundation Server

4. В окне Connect to Team Foundation Server выберите TailspinToysCollection и нажмите на

кнопку Connect. Если требуется подтверждение, нажмите на кнопку Yes в окне

подтверждения.

Page 5: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 2

Выбор коллекции проекта TailspinToysCollection

5. В Source Control Explorer (View | Other Windows | Source Control Explorer) перейдите к

Tailspin Toys | Development | Iteration 2 откройте файл TailspinToys.sln для открытия

решения Tailspin Toys.

6. Перестройте решение (Build | Rebuild Solution из главного меню). Этот шаг может

потребовать некоторого времени для завершения.

7. Откройте окно Options из Tools | Options... и нажмите на узел IntelliTrace.

8. Убедитесь, что выбрано Enable IntelliTrace и установлен параметр “IntelliTrace events only”.

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

Page 6: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 3

Свойства IntelliTrace

Примечание: IntelliTrace записывает события в файл с расширением .iTrace. Эти файлы

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

помощью IntelliTrace, позволить тестировщикам присоединить эту подробную

отладочную информацию непосредственно к отчету об ошибках.

9. Выберите узел IntelliTrace Events слева, а затем выберите флажок File, чтобы использовать

события IntelliTrace записи в файл. Нажмите кнопку ОК.

Page 7: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Figure 4

Сбор событий IntelliTrace, которые относятся к функциям доступа к файлам

10. Запустите сеанс отладки, нажав клавишу F5. Это загрузит страницу по умолчанию для

вымышленной компании Tailspin Toys.

Примечание: Если проект Tailspin.Web не установлен как стартовый проект, щелкните

правой кнопкой мыши на узле Tailspin.Web в Solution Explorer и выберите опцию « Set as

StartUp Project ».

Page 8: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 5

Страница по умолчанию для Tailspin Toys

11. Выберите ссылку About Us в нижнем колонтитуле страницы. Это сгенерирует исключение и

покажет настраиваемую страницу ошибки ASP.NET приложения Tailspin Toys.

Рисунок 6

Page 9: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Расположение ссылки About Us

Рисунок 7

Error Page при загрузке About Us

12. Перейдите обратно в Visual Studio, найдите окно IntelliTrace и нажмите на ссылку Break All.

Рисунок 8

Окно IntelliTrace

13. Окно IntelliTrace показывает последовательный список событий, которые были собраны

после начала сеанса отладки, последние из которых находятся внизу.

Page 10: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 9

Окно IntelliTrace, показывающее записанные события

Примечание: IntelliTrace по умолчанию настроен для сбора определенных событий при

отладке, некоторые из которых вы можете видеть сейчас в окне IntelliTrace Events. В

параметрах IntelliTrace (Tools | Options) можно настроить какие категории событий или

даже конкретные события будут собираться.

14. В окне IntelliTrace Events найдите и выберите «Exception: Thrown» event of type

XmlException that occurs after the ASP.NET call to get ‘/Home/About» page is loaded». Это

покажет подробные сведения об исключении, которое произошли, а также предоставит

ссылки на окна Locals и Call Stack. Это исключение позволяет нам узнать, что есть

Page 11: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

проблемы в XML-файл в линии 10, столбце 49, но он не говорит нам, какой XML-файл

имеется в виду.

Рисунок 10

Исключение, сгенерированное при разборе XML файле

Рисунок 11

Окна Locals и Call Stack по выбранному исключению

15. Выберите событие «File Access», которое предшествует исключению, чтобы увидеть файл,

к которому осуществлялся доступ перед появлением исключения.

Page 12: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 12

Событие File Access

16. Откройте файл Ads.xml, нажав на предоставленную ссылку.

Рисунок 13

Ссылка к запрашиваемому файлу

17. Заметьте, что красная волнистая линия подчеркивает символы «&b = 1», которые

недопустимы в этом контексте. Обратите внимание, что это на линии 10, столбец 49

отображено как XML исключение.

Рисунок 14

Ads.xml показывает неправильные символы

18. Удалите неправильные символы и сохраните файл. Конечный URL должен быть

http://localhost/test.aspx?a=2.

Примечание: Нажмите кнопку Edit в окне запроса Edit and Continue.

Page 13: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

19. Нажмите Ctrl + Shift + F5 (или используйте Debug | Restart из главного меню) для

перезапуска сеанса отладки и выберите ссылку About Us снова, чтобы убедиться, что

теперь все работает, как ожидается.

Рисунок 15

Рабочая страница About

20. Остановите текущую сессию отладки (Debug | Stop Debugging).

21. Отключите событие File для, которое мы ранее включили в Tools | Options | IntelliTrace.

Нам не нужны эти события в следующем упражнении.

Page 14: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Упражнение 2: Использование

IntelliTrace с информацией о

вызовах В этом упражнении вы узнаете, как использовать IntelliTrace для сбора дополнительной

информации о вызовах для того, чтобы решить более сложные ошибки.

1. По умолчанию только события IntelliTrace собраются при отладке, но мы также можем

выбрать собирать данные для каждого входа/выхода метода и вызова сайта. Для этого

выберите Tools | Options в главном меню в Visual Studio, найдите узел IntelliTrace и

выберите параметр « IntelliTrace events and call information ».

Рисунок 16

Параметр IntelliTrace для сбора информации о вызовах

2. Нажмите кнопку OK для продолжения.

3. Запустите сессию отладки через F5.

4. Давайте проверим функциональность корзины покупок, добавив несколько продуктов в

корзину. Выберите заголовок «Paper Airplanes», чтобы увидеть каталог самолетов.

Page 15: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 17

Расположение кнопки «Paper Airplanes»

Рисунок 18

Каталог бумажных самолетов

5. Далее нажмите кнопку “View Plane” для Contoso Cloud Explorer.

Рисунок 19

Расположение кнопки “View Plane”

Page 16: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 20

Страничка продукта Contoso Cloud Explorer

6. Нажмите кнопку “Add To Cart” и проверьте, что количество элементов в корзине равно 1.

Рисунок 21

Расположение кнопки «Add To Cart»

Page 17: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 22

Корзина содержит 1 самолет

7. Добавьте еще один «Contoso Cloud Explorer» в корзину, выбрав ссылку «Contoso Cloud

Explorer» и выбрав кнопку « Add To Cart » еще раз. Обратите внимание, что значение

количества все еще 1, несмотря на то, что мы добавили 2 продукта.

Рисунок 23

Расположение кнопки «Contoso Cloud Explorer»

8. Выберите кнопку « Add To Cart » еще раз. Обратите внимание, что значение количества все

еще 1, несмотря на то, что мы добавили 2 продукта.

Рисунок 24

Добавление второго самолета к корзине

Page 18: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 25

Количество продукта в корзине неверно

9. Вернитесь в Visual Studio и выберите Break All в окне IntelliTrace. По умолчанию мы увидим

окно IntelliTrace Events, показывающее последовательность записанных событий,

выполнявшихся до прерывания отладчика.

10. В поле поиска в верхней части окна IntelliTrace введите «post» и нажмите Enter для

проведения поиска. Это вернет два события «Post», один для каждого добавления

элемента в корзину.

Рисунок 26

Поиск событий IntelliTrace

11. Выберите первое событие POST ASP.NET и обратите внимание, что нет исходного кода для

события. Это ожидаемо, потому что это код не нашего приложения.

Page 19: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 27

Событие ASP.NET не показывает исходный код по умолчанию

12. Выберите второе событие POST ASP.NET. Мы будем использовать это как ссылку в

переходе к точке в сеансе отладки, когда начинается логика добавления элемента.

Рисунок 28

Выбранное событие POST ASP.NET

13. Вернитесь к полному списку записанных событий, щелкнув на синий «X» справа от поля

поиска.

Page 20: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 29

Очистка поиска IntelliTrace

14. Выберите первое событие ADO.NET, которое произошло после выбранного события

ASP.NET. Это покажет, что каждый элемент, добавленный в корзину, приводит к поиску

клиента в базе данных.

Рисунок 30

Событие ADO.NET

15. Выберите ссылку «Calls View» в нижней части выбранного события, чтобы показать полную

иерархию вызовов сеанса отладки. Верхний фрейм в представлении вызовы показывает

стек для выбранного вызова.

Page 21: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Примечание: Можно также использовать ссылку «Switch to IntelliTrace Calls View» в

верхней части окна IntelliTrace.

Рисунок 31

Расположение ссылка“Calls View”

Рисунок 32

Представление вызовов IntelliTrace

16. Представьте себе, что мы тесно знакомы с базой кода, поэтому мы знаем, что нам нужно

перейти назад по времени к вызову стека ProcessRequestNotification для того, чтобы найти

Page 22: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

интересующий код. Дважды щелкните на вызове

System.Web.Hosting.PipelineRuntime.ProcessRequestNotification.

Рисунок 33

Расположение вызова ProcessRequestNotification

17. В представлении вызовов IntelliTrace дважды щелкните на вызов

«Tailspin.Web.App.Controllers.CartController.AddItem(string sku = “papcce”)». Каждый раз,

когда вы дважды щелкаете на вызов в нижней половине представления, вызов появляется

в нижней части верхнего фрейма и синхронизирует указатель инструкций в редакторе кода

на точку входа вызова метода, так же, как при отладке вживую.

18. В представлении IntelliTrace дважды щелкните на вызове

“Tailspin.Model.ShoppingCart.AddItem(Tailspin.Model.Product produt =

{Tailspin.Model.Product})”.

19. В представлении IntelliTrace дважды щелкните на вызове AddItem, который показывает

“Tailspin.Model.Product product = {Tailspin.Model.Product}, int quantity = 1)” как параметр.

20. В представлении IntelliTrace дважды щелкните на вызове AddItem который показывает

“Tailspin.Model.Product product = {Tailspin.Model.Product}, int quantity = 1, System.DateTime

dateAdded = …)” как параметр. Переходы с представлением вызовов являются быстрым

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

по всей иерархии вызовов без необходимости шагать построчно.

Page 23: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 34

Представление вызовов IntelliTrace, которое показывает вызов метода AddItem

21. В окне Locals разверните вызов функции «AddItem» для проверки, что правильный продукт

добавлен в корзину и что добавляемое количество 1. В любой момент с отладкой с

помощью IntelliTrace вы можете посмотреть собранные переменные в окне

Autos/Locals/Watch или с помощью подсказок в редакторе.

Рисунок 35

Окно Locals, показывающее параметры вызова AddItem

22. Шагните вперед на 2 вызова, дважды нажав F10. Имейте в виду, что, поскольку мы

находимся в режиме отладки IntelliTrace, мы шагаем по записанным событиям и вызовам

сайтов, а не по строкам кода.

Page 24: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 36

Расположение метода Location in AddItem, где вызывается метод AdjustQuantity

Примечание: Вы также можете использовать набор элементов управления «VCR» стиля,

показано в поле управления окна исходного кода.

23. В окне Locals разверните вызов функции «AdjustQuantity» чтобы увидеть, какое

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

ожидаем скорректированное количество на 2, мы нашли местоположение ошибки.

Рисунок 37

Окно Locals показывает некорректное количество

24. Остановите ткущую сессию отладки (Debug | Stop Debugging).

25. Измените вызов AdjustQuantity(…) так, чтоб он добавлял новое количество, передаваемое

в метод AddItem.

Page 25: Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012

Рисунок 38

Исправленный вызов метода AdjustQuantity

26. Проверьте исправления, добавив тот же продукт дважды, чтобы проверить, что количество

в корзине показывает значение 2.

Рисунок 39

Корзина показывает корректное значение количества купленных вещей

Примечание: Вы можете очистить текущую корзину, если необходимо, вручную удалив

элементы или выбрав Tools | Safety | Delete Browsing History в Internet Explorer.

Свои отзывы и предложения вы можете отправить по электронной

почте: [email protected]

© 2013 г. Корпорация Microsoft. Все права защищены.