18
DEV303ILL Лабораторная работа Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate

Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

DEV303ILL

Лабораторная работа

Отладка приложений с

использованием

инструмента IntelliTrace в

Visual Studio 2010 Ultimate

Page 2: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

2 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

Содержание 1. Обзор 3

1.1. Системные требования 3

1.3. Задания 3

Задание 1: Введение в IntelliTrace 4

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

Page 3: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

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

доступной в Visual Studio 2010 Ultimate. До появления IntelliTrace отладка выполнялась с момента

срабатывания точки останова и далее. Если вы хотели узнать больше информации о предыдущих

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

IntelliTrace позволяет перемещаться на точки исполнения, которые произошли в прошлом и

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

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

1.1. Системные требования

Для выполнения этой лабораторной работы вам необходима виртуальная машина с Visual Studio

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

использовании этой виртуальной машины смотрите раздел «Работа с виртуальной машиной».

1.3. Задания

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

Введение в IntelliTrace

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

Время на выполнение данной лабораторной работы: 60 минут.

Page 4: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

4 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

Задание 1: Введение в IntelliTrace В этом задании вы ознакомитесь с тем, как IntelliTrace может помочь вам в отладке проблем с XML

данными в рамках веб-сайта ASP.NET.

Поддерживаемые типы приложений и сценариев:

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

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

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

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

на MSDN (http://msdn.microsoft.com).

1. Войдите в систему как Abu Obeida Bakhach (Dev) если вы еще не сделали этого. Пароль –

P2ssw0rd (заглавная буква P, цифра 2, буква s, буква s, буква w, цифра 0, буква r, буква d).

Пожалуйста, ознакомьтесь с разделом «Работа с виртуальной машиной» для получения

детальных инструкций по использованию виртуальной машины.

2. Откройте Visual Studio из меню Start | All Programs | Microsoft Visual Studio 2010 |

Microsoft Visual Studio 2010.

3. В окне Source Control Explorer (View | Other Windows | Source Control Explorer), перейдите

к Tailspin Toys | Development | Iteration 2 и выполните двойной клик мышью на файле

TailspinToys.sln для открытия проекта Tailspin Toys.

4. Перестройте проект (Build | Rebuild Solution в главном меню). Этот шаг может выполняться

несколько минут.

5. Откройте окно Options через главное меню Tools | Options и выберете вкладку IntelliTrace.

6. Убедитесь, что флаг Enable IntelliTrace включен и установлена опция «IntelliTrace events

only». Это настройка по умолчанию, поскольку она требует минимальных дополнительных

Page 5: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

5 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

затрат по производительности.

Рисунок 1

Настройки IntelliTrace

Примечание: IntelliTrace записывает события в файл IntelliTrace, который имеет

расширение .iTrace. Эти файлы могут быть сохранены и использованы позже для

выполнения отладки с IntelliTrace, например, при передаче тестировщиками отладочной

информации при фиксации ошибки.

Page 6: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

6 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

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

компании Tailspin Toys.

Рисунок 2

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

Примечание: Если проект Tailspin.Web не является проектом для запуска, то нажмите

правую кнопку мыши по названию этого проекта в Solution Explorer и выберите опцию

«Set as StartUp Project».

Page 7: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

7 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

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

отобразит страницу с сообщением об ошибке.

Рисунок 3

Странице об ошибке при загрузке страниц About Us

9. Вернитесь обратно в Visual Studio и выберите пункт меню Debug | Break All, что позволит

начать процесс отладки. Если окно IntelliTrace не видимо, откройте его, выбрав в главном

меню пункт Debug | Windows | IntelliTrace Events. Окно IntelliTrace Events отображает

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

Page 8: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

8 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

отладки.

Рисунок 4

Окно IntelliTrace отображает записанные события

Примечание: По умолчанию IntelliTrace сконфигурирован так, чтобы собирать

информацию об определенных событиях, некоторые из которых вы видите в окне

IntelliTrace Events сейчас. Вы можете настроить какие именно категории событий или

даже какие-то конкретные события будут собираться IntelliTrace. Это можно сделать,

используя окно настроек IntelliTrace (Tools | Options).

10. В окне IntelliTrace Events переместитесь к событию «Exception Thrown», которое возникает

после загрузки страницы «/Views/Home/About». Это покажет детальную информацию об

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

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

нам о том, какой именно XML-файл при этом используется.

Page 9: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

9 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

Рисунок 5

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

Рисунок 6

Окна Locals и Call Stack содержат информацию на момент времени генерации

исключения

11. Выберите событие «XML Loading», которое предшествует событию, которое генерирует

исключение.

Figure 7

Событие загрузки XML

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

Tailspin.Web\Content\XML\Ads.xml и нажмите кнопку Open.

Примечание: Вам необходимо переместиться к папке Iteration 2, которая находится

c:\ws\abuobe\Tailspin Toys\Development\Iteration 2.

13. Обратите внимание, что в выбранном файле есть подчеркнутые красной линией строки со

значением «&b=1». Это строка 10, столбце 49, как и было указано в исключении.

Page 10: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

10 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

Рисунок 8

Файл Ads.xml содержит некорректные символы

14. Удалите некорректные символы и сохраните файл. Окончательный адрес для страницы

должен быть http://localhost/test.aspx?a=2.

15. Нажмите F5 дважды, чтобы продолжить выполнение приложения.

16. Вернитесь обратно к Internet Explorer и выберите ссылку About Us, чтобы проверить, что

проблема исправлена. Снизу страницы вы увидите рекламу, которая сконфигурирована в

файле Ads.xml.

Рисунок 9

Работающая страница About Us

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

Page 11: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

11 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

Задание 2: Использование IntelliTrace с информацией о вызовах В этом задании вы более детально познакомитесь с тем, как IntelliTrace собирает дополнительную

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

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

собирать информацию о входе и выходе в каждый метод при выполнении приложения.

Для включения этого режима выберите пункт Tools | Options из главного меню Visual

Studio, откройте вкладку IntelliTrace, и включите опцию «IntelliTrace events and call

information».

Рисунок 10

Включение опции записи информацию о вызовах для IntelliTrace

2. Нажмите кнопку OK.

3. Запустите отладку, нажав кнопку F5.

Page 12: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

12 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

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

Airplanes» для отображения каталога самолетов.

Рисунок 11

Каталог самолетов

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

Рисунок 12

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

Page 13: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

13 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

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

Рисунок 13

Корзина товаров

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

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

равным 1, даже если мы добавим 2 товара.

8. Вернитесь в Visual Studio и выберите пункт меню Debug | Break All. По умолчанию вы

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

Однако в данном случае эти события не являются ценными, поскольку логика корзины

товаров не является частью .NET Framework.

9. В поле Search сверху окна IntelliTrace введите «post» и нажмите Enter для выполнения

поиска. Это отобразит два события «Post», один из которых обрабатывает операцию

добавления в корзину.

10. Выберите второе событие «Post /Cart/AddItem/». Мы будем использовать это как точку

входа для отслеживания логики работы приложения.

Рисунок 14

Второе событие ASP.NET – POST-запрос

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

поиска.

Page 14: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

14 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

12. Выберите ссылку «Calls View» снизу от выбранного события для отображения полной

иерархии вызовов для текущей сессии отладки.

Рисунок 15

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

Page 15: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

15 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

Рисунок 16

Просмотр вызовов IntelliTrace

13. В окне IntelliTrace calls выполните двойной клик мыши на вызове

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

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

информация о вызове.

14. В окне IntelliTrace calls выполните двойной клик мыши на вызове

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

{Tailspin.Model.Product})».

15. В окне IntelliTrace calls выполните двойной клик мыши на вызове AddItem, который

отображает «Tailspin.Model.Product product = {Tailspin.Model.Product}, int quantity = 1)» как

параметр.

Page 16: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

16 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

16. В окне IntelliTrace calls выполните двойной клик мыши на вызове AddItem, который

отображает «Tailspin.Model.Product product = {Tailspin.Model.Product}, int quantity = 1,

System.DateTime dateAdded = …)» как параметр. Навигация через стек вызовов дает

быстрый способ получить информацию о иерархии вызовов без необходимости

построчной отладки.

Рисунок 17

Окно IntelliTrace calls отображает вызов метода AddItem

17. В окне Locals раскройте функцию «AddItem» для проверки того, что корректный продукт

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

IntelliTrace, вы можете просмотреть значения переменных в окнах Autos/Locals/Watch.

Рисунок 18

Окно Locals отображает значение параметра, с которым вызывается метод AddItem

Page 17: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

17 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

18. Выполните два шага отладки, дважды нажав F10. Имейте в виду, что когда вы используете

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

Рисунок 19

Расположение вызова AdjustQuantity в методе AddItem

19. В окне Locals раскройте вызов метода «Adjustqunatity» для просмотра количества товара в

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

быть 2, мы нашли место ошибки.

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

21. Измените метод AdjustQunatity(…), чтобы значение нового количества добавлялось к

текущему.

Page 18: Отладка приложений с использованием ... · 2016. 8. 23. · 3 Microsoft Tech∙Ed Russia 2011. Лабораторная работа. Отладка

18 Microsoft Tech∙Ed Russia 2011. Лабораторная работа.

Отладка приложений с использованием инструмента IntelliTrace в Visual Studio 2010 Ultimate.

Рисунок 20

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

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

товара в корзину, его количество становится равным 2.

Рисунок 21

Корзина товаров отображает правильное количество товара