SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Практическое занятие
Отладка с использованием IntelliTrace в
Visual Studio Ultimate 2012
Версия практической: 11.0.51106.01 Обновление 1
Последнее обновление: 27.11.2012
СОДЕРЖИМОЕ
ОПИСАНИЕ.................................................................................................................................................3
УПРАЖНЕНИЕ 1: ВВЕДЕНИЕ В INTELLITRACE ....................................................................................4
УПРАЖНЕНИЕ 2: ИСПОЛЬЗОВАНИЕ INTELLITRACE С ИНФОРМАЦИЕЙ О ВЫЗОВАХ...............14
Описание
В этой практической работе вы узнаете о функции отладки IntelliTrace в Visual Studio Ultimate 2012.
Перед добавлением IntelliTrace отладка делалась с определенного момента время и шла вперед.
Если вам нужно было узнать больше информации для предыдущего вызова, то вам нужно было
задать точку останова и затем повторно запустить приложение. IntelliTrace позволяет вам
отслеживать через большое количество точек выполнения, которые были пройдены в прошлом, и
прийти в любою из них, сравнить переменные, стек вызова и т.д. для того, чтобы помочь
определить причины проблем без необходимости воспроизводить проблему.
Примечание: Эта виртуальная машина была предварительно подготовлена, чтобы
заархивировать исходный код и символы для построения, с которыми вы будете работать. Это
гарантирует, что файлы, которые вы получите из сеанса IntelliTrace, будут соответствовать
определенному построению. Для того, чтобы лучше использовать IntelliTrace для ваших
программных приложений, следует посмотреть этот блог, который даст больше сведений и
инструкции для обеспечения IntelliTrace.
Предварительные требования
Чтобы выполнить это практическое занятие, вам необходима виртуальная машина Visual Studio
2012 предоставляемая Microsoft. Для получения дополнительной информации по получению и
использованию этой виртуальной машины, пожалуйста, см. это сообщение в блоге.
Упражнения
Это практическое занятие содержит следующие упражненния:
1. Введение в IntelliTrace
2. Использование IntelliTrace с информацией о вызовах
Примерная продолжительность практического занятия: 60 минут.
Упражнение 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 в окне
подтверждения.
Рисунок 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”.
Это параметр по умолчанию, т.к. он минимально влияет на производительность.
Рисунок 3
Свойства IntelliTrace
Примечание: IntelliTrace записывает события в файл с расширением .iTrace. Эти файлы
можно сохранить и использовать в дальнейшем для того, чтобы выполнить отладку с
помощью IntelliTrace, позволить тестировщикам присоединить эту подробную
отладочную информацию непосредственно к отчету об ошибках.
9. Выберите узел IntelliTrace Events слева, а затем выберите флажок File, чтобы использовать
события IntelliTrace записи в файл. Нажмите кнопку ОК.
Figure 4
Сбор событий IntelliTrace, которые относятся к функциям доступа к файлам
10. Запустите сеанс отладки, нажав клавишу F5. Это загрузит страницу по умолчанию для
вымышленной компании Tailspin Toys.
Примечание: Если проект Tailspin.Web не установлен как стартовый проект, щелкните
правой кнопкой мыши на узле Tailspin.Web в Solution Explorer и выберите опцию « Set as
StartUp Project ».
Рисунок 5
Страница по умолчанию для Tailspin Toys
11. Выберите ссылку About Us в нижнем колонтитуле страницы. Это сгенерирует исключение и
покажет настраиваемую страницу ошибки ASP.NET приложения Tailspin Toys.
Рисунок 6
Расположение ссылки About Us
Рисунок 7
Error Page при загрузке About Us
12. Перейдите обратно в Visual Studio, найдите окно IntelliTrace и нажмите на ссылку Break All.
Рисунок 8
Окно IntelliTrace
13. Окно IntelliTrace показывает последовательный список событий, которые были собраны
после начала сеанса отладки, последние из которых находятся внизу.
Рисунок 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. Это исключение позволяет нам узнать, что есть
проблемы в XML-файл в линии 10, столбце 49, но он не говорит нам, какой XML-файл
имеется в виду.
Рисунок 10
Исключение, сгенерированное при разборе XML файле
Рисунок 11
Окна Locals и Call Stack по выбранному исключению
15. Выберите событие «File Access», которое предшествует исключению, чтобы увидеть файл,
к которому осуществлялся доступ перед появлением исключения.
Рисунок 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.
19. Нажмите Ctrl + Shift + F5 (или используйте Debug | Restart из главного меню) для
перезапуска сеанса отладки и выберите ссылку About Us снова, чтобы убедиться, что
теперь все работает, как ожидается.
Рисунок 15
Рабочая страница About
20. Остановите текущую сессию отладки (Debug | Stop Debugging).
21. Отключите событие File для, которое мы ранее включили в Tools | Options | IntelliTrace.
Нам не нужны эти события в следующем упражнении.
Упражнение 2: Использование
IntelliTrace с информацией о
вызовах
В этом упражнении вы узнаете, как использовать IntelliTrace для сбора дополнительной
информации о вызовах для того, чтобы решить более сложные ошибки.
1. По умолчанию только события IntelliTrace собраются при отладке, но мы также можем
выбрать собирать данные для каждого входа/выхода метода и вызова сайта. Для этого
выберите Tools | Options в главном меню в Visual Studio, найдите узел IntelliTrace и
выберите параметр « IntelliTrace events and call information ».
Рисунок 16
Параметр IntelliTrace для сбора информации о вызовах
2. Нажмите кнопку OK для продолжения.
3. Запустите сессию отладки через F5.
4. Давайте проверим функциональность корзины покупок, добавив несколько продуктов в
корзину. Выберите заголовок «Paper Airplanes», чтобы увидеть каталог самолетов.
Рисунок 17
Расположение кнопки «Paper Airplanes»
Рисунок 18
Каталог бумажных самолетов
5. Далее нажмите кнопку “View Plane” для Contoso Cloud Explorer.
Рисунок 19
Расположение кнопки “View Plane”
Рисунок 20
Страничка продукта Contoso Cloud Explorer
6. Нажмите кнопку “Add To Cart” и проверьте, что количество элементов в корзине равно 1.
Рисунок 21
Расположение кнопки «Add To Cart»
Рисунок 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
Добавление второго самолета к корзине
Рисунок 25
Количество продукта в корзине неверно
9. Вернитесь в Visual Studio и выберите Break All в окне IntelliTrace. По умолчанию мы увидим
окно IntelliTrace Events, показывающее последовательность записанных событий,
выполнявшихся до прерывания отладчика.
10. В поле поиска в верхней части окна IntelliTrace введите «post» и нажмите Enter для
проведения поиска. Это вернет два события «Post», один для каждого добавления
элемента в корзину.
Рисунок 26
Поиск событий IntelliTrace
11. Выберите первое событие POST ASP.NET и обратите внимание, что нет исходного кода для
события. Это ожидаемо, потому что это код не нашего приложения.
Рисунок 27
Событие ASP.NET не показывает исходный код по умолчанию
12. Выберите второе событие POST ASP.NET. Мы будем использовать это как ссылку в
переходе к точке в сеансе отладки, когда начинается логика добавления элемента.
Рисунок 28
Выбранное событие POST ASP.NET
13. Вернитесь к полному списку записанных событий, щелкнув на синий «X» справа от поля
поиска.
Рисунок 29
Очистка поиска IntelliTrace
14. Выберите первое событие ADO.NET, которое произошло после выбранного события
ASP.NET. Это покажет, что каждый элемент, добавленный в корзину, приводит к поиску
клиента в базе данных.
Рисунок 30
Событие ADO.NET
15. Выберите ссылку «Calls View» в нижней части выбранного события, чтобы показать полную
иерархию вызовов сеанса отладки. Верхний фрейм в представлении вызовы показывает
стек для выбранного вызова.
Примечание: Можно также использовать ссылку «Switch to IntelliTrace Calls View» в
верхней части окна IntelliTrace.
Рисунок 31
Расположение ссылка“Calls View”
Рисунок 32
Представление вызовов IntelliTrace
16. Представьте себе, что мы тесно знакомы с базой кода, поэтому мы знаем, что нам нужно
перейти назад по времени к вызову стека ProcessRequestNotification для того, чтобы найти
интересующий код. Дважды щелкните на вызове
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 = …)” как параметр. Переходы с представлением вызовов являются быстрым
способом для получения видения иерархии вызовов, и позволяет делать большие прыжки
по всей иерархии вызовов без необходимости шагать построчно.
Рисунок 34
Представление вызовов IntelliTrace, которое показывает вызов метода AddItem
21. В окне Locals разверните вызов функции «AddItem» для проверки, что правильный продукт
добавлен в корзину и что добавляемое количество 1. В любой момент с отладкой с
помощью IntelliTrace вы можете посмотреть собранные переменные в окне
Autos/Locals/Watch или с помощью подсказок в редакторе.
Рисунок 35
Окно Locals, показывающее параметры вызова AddItem
22. Шагните вперед на 2 вызова, дважды нажав F10. Имейте в виду, что, поскольку мы
находимся в режиме отладки IntelliTrace, мы шагаем по записанным событиям и вызовам
сайтов, а не по строкам кода.
Рисунок 36
Расположение метода Location in AddItem, где вызывается метод AdjustQuantity
Примечание: Вы также можете использовать набор элементов управления «VCR» стиля,
показано в поле управления окна исходного кода.
23. В окне Locals разверните вызов функции «AdjustQuantity» чтобы увидеть, какое
количество устанавливается в корзину после добавления второго продукта. Поскольку мы
ожидаем скорректированное количество на 2, мы нашли местоположение ошибки.
Рисунок 37
Окно Locals показывает некорректное количество
24. Остановите ткущую сессию отладки (Debug | Stop Debugging).
25. Измените вызов AdjustQuantity(…) так, чтоб он добавлял новое количество, передаваемое
в метод AddItem.
Рисунок 38
Исправленный вызов метода AdjustQuantity
26. Проверьте исправления, добавив тот же продукт дважды, чтобы проверить, что количество
в корзине показывает значение 2.
Рисунок 39
Корзина показывает корректное значение количества купленных вещей
Примечание: Вы можете очистить текущую корзину, если необходимо, вручную удалив
элементы или выбрав Tools | Safety | Delete Browsing History в Internet Explorer.
Свои отзывы и предложения вы можете отправить по электронной
почте: VSKitFdbk@Microsoft.com
© 2013 г. Корпорация Microsoft. Все права защищены.

Más contenido relacionado

La actualidad más candente

Гибкое управление проектами в Visual Studio Team Foundation Server 2012
Гибкое управление проектами в Visual Studio Team Foundation Server 2012Гибкое управление проектами в Visual Studio Team Foundation Server 2012
Гибкое управление проектами в Visual Studio Team Foundation Server 2012Александр Шамрай
 
Олексій Стульніков “WinAppDriver – автоматизація Desktop ніколи не була такою...
Олексій Стульніков “WinAppDriver – автоматизація Desktop ніколи не була такою...Олексій Стульніков “WinAppDriver – автоматизація Desktop ніколи не була такою...
Олексій Стульніков “WinAppDriver – автоматизація Desktop ніколи не була такою...Dakiry
 
практические работы аис
практические работы аиспрактические работы аис
практические работы аисAnastasia Snegina
 
Среда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekСреда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekYa_Cheburek
 
Изменения в инфраструктуре инструментов для программистов
Изменения в инфраструктуре инструментов для программистовИзменения в инфраструктуре инструментов для программистов
Изменения в инфраструктуре инструментов для программистовTatyanazaxarova
 
Ecp manual
Ecp manualEcp manual
Ecp manualDim Kin
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.Igor Shkulipa
 
Практическое руководство - использование SVN
Практическое руководство - использование SVNПрактическое руководство - использование SVN
Практическое руководство - использование SVNАлександр Шамрай
 
613.программирование в visual с++ с использованием библиотеки mfc учебное по...
613.программирование в visual с++ с использованием библиотеки mfc  учебное по...613.программирование в visual с++ с использованием библиотеки mfc  учебное по...
613.программирование в visual с++ с использованием библиотеки mfc учебное по...efwd2ws2qws2qsdw
 
Dependency Injection на примере Unity и NInject
Dependency Injection на примере Unity и NInjectDependency Injection на примере Unity и NInject
Dependency Injection на примере Unity и NInjectakrakovetsky
 
12 introducing activation course-2012 07-12a 0 final ds approved_3
12 introducing activation course-2012 07-12a 0 final ds approved_312 introducing activation course-2012 07-12a 0 final ds approved_3
12 introducing activation course-2012 07-12a 0 final ds approved_3freshmarketing
 
Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Sergiy Shychynov
 
Testing RIA with Selenium
Testing RIA with SeleniumTesting RIA with Selenium
Testing RIA with SeleniumSergey Shvets
 
Sw2009 Kurulum Oku
Sw2009 Kurulum OkuSw2009 Kurulum Oku
Sw2009 Kurulum Okuguest8d9fa0
 

La actualidad más candente (17)

Гибкое управление проектами в Visual Studio Team Foundation Server 2012
Гибкое управление проектами в Visual Studio Team Foundation Server 2012Гибкое управление проектами в Visual Studio Team Foundation Server 2012
Гибкое управление проектами в Visual Studio Team Foundation Server 2012
 
Олексій Стульніков “WinAppDriver – автоматизація Desktop ніколи не була такою...
Олексій Стульніков “WinAppDriver – автоматизація Desktop ніколи не була такою...Олексій Стульніков “WinAppDriver – автоматизація Desktop ніколи не була такою...
Олексій Стульніков “WinAppDriver – автоматизація Desktop ніколи не була такою...
 
пр1 (2часа)b pwin
пр1 (2часа)b pwinпр1 (2часа)b pwin
пр1 (2часа)b pwin
 
практические работы аис
практические работы аиспрактические работы аис
практические работы аис
 
Среда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekСреда разработки Eclipse by Cheburek
Среда разработки Eclipse by Cheburek
 
Изменения в инфраструктуре инструментов для программистов
Изменения в инфраструктуре инструментов для программистовИзменения в инфраструктуре инструментов для программистов
Изменения в инфраструктуре инструментов для программистов
 
Ecp manual
Ecp manualEcp manual
Ecp manual
 
Mantis
MantisMantis
Mantis
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.
 
Практическое руководство - использование SVN
Практическое руководство - использование SVNПрактическое руководство - использование SVN
Практическое руководство - использование SVN
 
613.программирование в visual с++ с использованием библиотеки mfc учебное по...
613.программирование в visual с++ с использованием библиотеки mfc  учебное по...613.программирование в visual с++ с использованием библиотеки mfc  учебное по...
613.программирование в visual с++ с использованием библиотеки mfc учебное по...
 
Dependency Injection на примере Unity и NInject
Dependency Injection на примере Unity и NInjectDependency Injection на примере Unity и NInject
Dependency Injection на примере Unity и NInject
 
12 introducing activation course-2012 07-12a 0 final ds approved_3
12 introducing activation course-2012 07-12a 0 final ds approved_312 introducing activation course-2012 07-12a 0 final ds approved_3
12 introducing activation course-2012 07-12a 0 final ds approved_3
 
Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4
 
Testing RIA with Selenium
Testing RIA with SeleniumTesting RIA with Selenium
Testing RIA with Selenium
 
лек11 2
лек11 2лек11 2
лек11 2
 
Sw2009 Kurulum Oku
Sw2009 Kurulum OkuSw2009 Kurulum Oku
Sw2009 Kurulum Oku
 

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

создание сайта в_системе_ucoz(2014)
создание сайта в_системе_ucoz(2014)создание сайта в_системе_ucoz(2014)
создание сайта в_системе_ucoz(2014)MarcoFill
 
10 задач администрирования Active directory, решаемых с помощью power shell
10 задач администрирования Active directory, решаемых с помощью power shell10 задач администрирования Active directory, решаемых с помощью power shell
10 задач администрирования Active directory, решаемых с помощью power shellAndrey Markin
 
File 0039
File 0039File 0039
File 0039IT1811
 
Build a VR Pawn with Unreal Engine Luis Cataldi Russian
Build a VR Pawn with Unreal Engine   Luis Cataldi RussianBuild a VR Pawn with Unreal Engine   Luis Cataldi Russian
Build a VR Pawn with Unreal Engine Luis Cataldi RussianUnreal Engine
 
Programming Guide
Programming GuideProgramming Guide
Programming Guideguest63e09c
 
Знакомство с профессиональной системой управления требованиями. 3SL Cradle. П...
Знакомство с профессиональной системой управления требованиями. 3SL Cradle. П...Знакомство с профессиональной системой управления требованиями. 3SL Cradle. П...
Знакомство с профессиональной системой управления требованиями. 3SL Cradle. П...Yulia Madorskaya
 
CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUICodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUICodeFest
 
Основы работы в BPwin.pdf
Основы работы в BPwin.pdfОсновы работы в BPwin.pdf
Основы работы в BPwin.pdfssuser117705
 
Plugin for plugin, or extending android new build system
Plugin for plugin, or extending android new build systemPlugin for plugin, or extending android new build system
Plugin for plugin, or extending android new build systemAnton Rutkevich
 
Разбор некоторых технических моментов нового .NET
Разбор некоторых технических моментов нового .NETРазбор некоторых технических моментов нового .NET
Разбор некоторых технических моментов нового .NETCUSTIS
 
Установка PC-Lint и его использование в Visual Studio 2005
Установка PC-Lint и его использование в Visual Studio 2005Установка PC-Lint и его использование в Visual Studio 2005
Установка PC-Lint и его использование в Visual Studio 2005Tatyanazaxarova
 
Автоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовАвтоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовSergey Borisov
 
Разработай первое приложение Qlik Sense
Разработай первое приложение Qlik SenseРазработай первое приложение Qlik Sense
Разработай первое приложение Qlik SenseMarina Payvina
 
Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»MskDotNet Community
 
Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»Yulia Tsisyk
 

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

лек12
лек12лек12
лек12
 
создание сайта в_системе_ucoz(2014)
создание сайта в_системе_ucoz(2014)создание сайта в_системе_ucoz(2014)
создание сайта в_системе_ucoz(2014)
 
10 задач администрирования Active directory, решаемых с помощью power shell
10 задач администрирования Active directory, решаемых с помощью power shell10 задач администрирования Active directory, решаемых с помощью power shell
10 задач администрирования Active directory, решаемых с помощью power shell
 
File 0039
File 0039File 0039
File 0039
 
Build a VR Pawn with Unreal Engine Luis Cataldi Russian
Build a VR Pawn with Unreal Engine   Luis Cataldi RussianBuild a VR Pawn with Unreal Engine   Luis Cataldi Russian
Build a VR Pawn with Unreal Engine Luis Cataldi Russian
 
Programming Guide
Programming GuideProgramming Guide
Programming Guide
 
Руководство пользователя веб-приложения «Профиль органа государственной власти»
Руководство пользователя веб-приложения «Профиль органа государственной власти»Руководство пользователя веб-приложения «Профиль органа государственной власти»
Руководство пользователя веб-приложения «Профиль органа государственной власти»
 
Знакомство с профессиональной системой управления требованиями. 3SL Cradle. П...
Знакомство с профессиональной системой управления требованиями. 3SL Cradle. П...Знакомство с профессиональной системой управления требованиями. 3SL Cradle. П...
Знакомство с профессиональной системой управления требованиями. 3SL Cradle. П...
 
CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUICodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
 
лек12 2
лек12 2лек12 2
лек12 2
 
важное о Dreamweaver cs5.5
важное о Dreamweaver cs5.5важное о Dreamweaver cs5.5
важное о Dreamweaver cs5.5
 
Практикум 10
Практикум 10Практикум 10
Практикум 10
 
Основы работы в BPwin.pdf
Основы работы в BPwin.pdfОсновы работы в BPwin.pdf
Основы работы в BPwin.pdf
 
Plugin for plugin, or extending android new build system
Plugin for plugin, or extending android new build systemPlugin for plugin, or extending android new build system
Plugin for plugin, or extending android new build system
 
Разбор некоторых технических моментов нового .NET
Разбор некоторых технических моментов нового .NETРазбор некоторых технических моментов нового .NET
Разбор некоторых технических моментов нового .NET
 
Установка PC-Lint и его использование в Visual Studio 2005
Установка PC-Lint и его использование в Visual Studio 2005Установка PC-Lint и его использование в Visual Studio 2005
Установка PC-Lint и его использование в Visual Studio 2005
 
Автоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовАвтоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотов
 
Разработай первое приложение Qlik Sense
Разработай первое приложение Qlik SenseРазработай первое приложение Qlik Sense
Разработай первое приложение Qlik Sense
 
Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»
 
Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»
 

Más de Александр Шамрай

Azure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребностиAzure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребностиАлександр Шамрай
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеАлександр Шамрай
 
Azure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольAzure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольАлександр Шамрай
 
Организация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSОрганизация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSАлександр Шамрай
 
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...Александр Шамрай
 
Cовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиCовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиАлександр Шамрай
 
Управление запросами к продукту на основе Team Foundation Server
Управление запросами к продукту на основе Team Foundation ServerУправление запросами к продукту на основе Team Foundation Server
Управление запросами к продукту на основе Team Foundation ServerАлександр Шамрай
 
Практическое руководство IBM RTC 3 - Использование отчетности и виджетов
Практическое руководство IBM RTC 3 - Использование отчетности и виджетовПрактическое руководство IBM RTC 3 - Использование отчетности и виджетов
Практическое руководство IBM RTC 3 - Использование отчетности и виджетовАлександр Шамрай
 
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...Александр Шамрай
 
Практическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Практическое руководство IBM RTC 3 - Управление проектами жизненного циклаПрактическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Практическое руководство IBM RTC 3 - Управление проектами жизненного циклаАлександр Шамрай
 
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...Александр Шамрай
 
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...Александр Шамрай
 
Практическое руководство IBM RTC 3 - Управление заданиями Web client
Практическое руководство IBM RTC 3  - Управление заданиями Web clientПрактическое руководство IBM RTC 3  - Управление заданиями Web client
Практическое руководство IBM RTC 3 - Управление заданиями Web clientАлександр Шамрай
 
Практическое руководство IBM RTC 3 - Управление заданиями Eclipse client
Практическое руководство IBM RTC 3  - Управление заданиями Eclipse clientПрактическое руководство IBM RTC 3  - Управление заданиями Eclipse client
Практическое руководство IBM RTC 3 - Управление заданиями Eclipse clientАлександр Шамрай
 
Практическое руководство IBM RTC 3 - Установка и поддержка
Практическое руководство IBM RTC 3  - Установка и поддержкаПрактическое руководство IBM RTC 3  - Установка и поддержка
Практическое руководство IBM RTC 3 - Установка и поддержкаАлександр Шамрай
 
Сквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFSСквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFSАлександр Шамрай
 
Организация процессов разработки на основе TFS
Организация процессов разработки на основе TFSОрганизация процессов разработки на основе TFS
Организация процессов разработки на основе TFSАлександр Шамрай
 
Отчеты в TFS VSO  и практики аналитики
Отчеты в TFS VSO  и практики аналитикиОтчеты в TFS VSO  и практики аналитики
Отчеты в TFS VSO  и практики аналитикиАлександр Шамрай
 
Организация работы с требованиями и документацией в TFS
Организация работы с требованиями и документацией в TFSОрганизация работы с требованиями и документацией в TFS
Организация работы с требованиями и документацией в TFSАлександр Шамрай
 
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...Александр Шамрай
 

Más de Александр Шамрай (20)

Azure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребностиAzure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребности
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестирование
 
Azure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольAzure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контроль
 
Организация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSОрганизация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFS
 
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
 
Cовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиCовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработки
 
Управление запросами к продукту на основе Team Foundation Server
Управление запросами к продукту на основе Team Foundation ServerУправление запросами к продукту на основе Team Foundation Server
Управление запросами к продукту на основе Team Foundation Server
 
Практическое руководство IBM RTC 3 - Использование отчетности и виджетов
Практическое руководство IBM RTC 3 - Использование отчетности и виджетовПрактическое руководство IBM RTC 3 - Использование отчетности и виджетов
Практическое руководство IBM RTC 3 - Использование отчетности и виджетов
 
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
 
Практическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Практическое руководство IBM RTC 3 - Управление проектами жизненного циклаПрактическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Практическое руководство IBM RTC 3 - Управление проектами жизненного цикла
 
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
 
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
 
Практическое руководство IBM RTC 3 - Управление заданиями Web client
Практическое руководство IBM RTC 3  - Управление заданиями Web clientПрактическое руководство IBM RTC 3  - Управление заданиями Web client
Практическое руководство IBM RTC 3 - Управление заданиями Web client
 
Практическое руководство IBM RTC 3 - Управление заданиями Eclipse client
Практическое руководство IBM RTC 3  - Управление заданиями Eclipse clientПрактическое руководство IBM RTC 3  - Управление заданиями Eclipse client
Практическое руководство IBM RTC 3 - Управление заданиями Eclipse client
 
Практическое руководство IBM RTC 3 - Установка и поддержка
Практическое руководство IBM RTC 3  - Установка и поддержкаПрактическое руководство IBM RTC 3  - Установка и поддержка
Практическое руководство IBM RTC 3 - Установка и поддержка
 
Сквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFSСквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFS
 
Организация процессов разработки на основе TFS
Организация процессов разработки на основе TFSОрганизация процессов разработки на основе TFS
Организация процессов разработки на основе TFS
 
Отчеты в TFS VSO  и практики аналитики
Отчеты в TFS VSO  и практики аналитикиОтчеты в TFS VSO  и практики аналитики
Отчеты в TFS VSO  и практики аналитики
 
Организация работы с требованиями и документацией в TFS
Организация работы с требованиями и документацией в TFSОрганизация работы с требованиями и документацией в TFS
Организация работы с требованиями и документацией в TFS
 
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
 

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

  • 1. Практическое занятие Отладка с использованием IntelliTrace в Visual Studio Ultimate 2012 Версия практической: 11.0.51106.01 Обновление 1 Последнее обновление: 27.11.2012
  • 2. СОДЕРЖИМОЕ ОПИСАНИЕ.................................................................................................................................................3 УПРАЖНЕНИЕ 1: ВВЕДЕНИЕ В INTELLITRACE ....................................................................................4 УПРАЖНЕНИЕ 2: ИСПОЛЬЗОВАНИЕ INTELLITRACE С ИНФОРМАЦИЕЙ О ВЫЗОВАХ...............14
  • 3. Описание В этой практической работе вы узнаете о функции отладки IntelliTrace в Visual Studio Ultimate 2012. Перед добавлением IntelliTrace отладка делалась с определенного момента время и шла вперед. Если вам нужно было узнать больше информации для предыдущего вызова, то вам нужно было задать точку останова и затем повторно запустить приложение. IntelliTrace позволяет вам отслеживать через большое количество точек выполнения, которые были пройдены в прошлом, и прийти в любою из них, сравнить переменные, стек вызова и т.д. для того, чтобы помочь определить причины проблем без необходимости воспроизводить проблему. Примечание: Эта виртуальная машина была предварительно подготовлена, чтобы заархивировать исходный код и символы для построения, с которыми вы будете работать. Это гарантирует, что файлы, которые вы получите из сеанса IntelliTrace, будут соответствовать определенному построению. Для того, чтобы лучше использовать IntelliTrace для ваших программных приложений, следует посмотреть этот блог, который даст больше сведений и инструкции для обеспечения IntelliTrace. Предварительные требования Чтобы выполнить это практическое занятие, вам необходима виртуальная машина Visual Studio 2012 предоставляемая Microsoft. Для получения дополнительной информации по получению и использованию этой виртуальной машины, пожалуйста, см. это сообщение в блоге. Упражнения Это практическое занятие содержит следующие упражненния: 1. Введение в IntelliTrace 2. Использование IntelliTrace с информацией о вызовах Примерная продолжительность практического занятия: 60 минут.
  • 4. Упражнение 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 в окне подтверждения.
  • 5. Рисунок 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”. Это параметр по умолчанию, т.к. он минимально влияет на производительность.
  • 6. Рисунок 3 Свойства IntelliTrace Примечание: IntelliTrace записывает события в файл с расширением .iTrace. Эти файлы можно сохранить и использовать в дальнейшем для того, чтобы выполнить отладку с помощью IntelliTrace, позволить тестировщикам присоединить эту подробную отладочную информацию непосредственно к отчету об ошибках. 9. Выберите узел IntelliTrace Events слева, а затем выберите флажок File, чтобы использовать события IntelliTrace записи в файл. Нажмите кнопку ОК.
  • 7. Figure 4 Сбор событий IntelliTrace, которые относятся к функциям доступа к файлам 10. Запустите сеанс отладки, нажав клавишу F5. Это загрузит страницу по умолчанию для вымышленной компании Tailspin Toys. Примечание: Если проект Tailspin.Web не установлен как стартовый проект, щелкните правой кнопкой мыши на узле Tailspin.Web в Solution Explorer и выберите опцию « Set as StartUp Project ».
  • 8. Рисунок 5 Страница по умолчанию для Tailspin Toys 11. Выберите ссылку About Us в нижнем колонтитуле страницы. Это сгенерирует исключение и покажет настраиваемую страницу ошибки ASP.NET приложения Tailspin Toys. Рисунок 6
  • 9. Расположение ссылки About Us Рисунок 7 Error Page при загрузке About Us 12. Перейдите обратно в Visual Studio, найдите окно IntelliTrace и нажмите на ссылку Break All. Рисунок 8 Окно IntelliTrace 13. Окно IntelliTrace показывает последовательный список событий, которые были собраны после начала сеанса отладки, последние из которых находятся внизу.
  • 10. Рисунок 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. Это исключение позволяет нам узнать, что есть
  • 11. проблемы в XML-файл в линии 10, столбце 49, но он не говорит нам, какой XML-файл имеется в виду. Рисунок 10 Исключение, сгенерированное при разборе XML файле Рисунок 11 Окна Locals и Call Stack по выбранному исключению 15. Выберите событие «File Access», которое предшествует исключению, чтобы увидеть файл, к которому осуществлялся доступ перед появлением исключения.
  • 12. Рисунок 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.
  • 13. 19. Нажмите Ctrl + Shift + F5 (или используйте Debug | Restart из главного меню) для перезапуска сеанса отладки и выберите ссылку About Us снова, чтобы убедиться, что теперь все работает, как ожидается. Рисунок 15 Рабочая страница About 20. Остановите текущую сессию отладки (Debug | Stop Debugging). 21. Отключите событие File для, которое мы ранее включили в Tools | Options | IntelliTrace. Нам не нужны эти события в следующем упражнении.
  • 14. Упражнение 2: Использование IntelliTrace с информацией о вызовах В этом упражнении вы узнаете, как использовать IntelliTrace для сбора дополнительной информации о вызовах для того, чтобы решить более сложные ошибки. 1. По умолчанию только события IntelliTrace собраются при отладке, но мы также можем выбрать собирать данные для каждого входа/выхода метода и вызова сайта. Для этого выберите Tools | Options в главном меню в Visual Studio, найдите узел IntelliTrace и выберите параметр « IntelliTrace events and call information ». Рисунок 16 Параметр IntelliTrace для сбора информации о вызовах 2. Нажмите кнопку OK для продолжения. 3. Запустите сессию отладки через F5. 4. Давайте проверим функциональность корзины покупок, добавив несколько продуктов в корзину. Выберите заголовок «Paper Airplanes», чтобы увидеть каталог самолетов.
  • 15. Рисунок 17 Расположение кнопки «Paper Airplanes» Рисунок 18 Каталог бумажных самолетов 5. Далее нажмите кнопку “View Plane” для Contoso Cloud Explorer. Рисунок 19 Расположение кнопки “View Plane”
  • 16. Рисунок 20 Страничка продукта Contoso Cloud Explorer 6. Нажмите кнопку “Add To Cart” и проверьте, что количество элементов в корзине равно 1. Рисунок 21 Расположение кнопки «Add To Cart»
  • 17. Рисунок 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 Добавление второго самолета к корзине
  • 18. Рисунок 25 Количество продукта в корзине неверно 9. Вернитесь в Visual Studio и выберите Break All в окне IntelliTrace. По умолчанию мы увидим окно IntelliTrace Events, показывающее последовательность записанных событий, выполнявшихся до прерывания отладчика. 10. В поле поиска в верхней части окна IntelliTrace введите «post» и нажмите Enter для проведения поиска. Это вернет два события «Post», один для каждого добавления элемента в корзину. Рисунок 26 Поиск событий IntelliTrace 11. Выберите первое событие POST ASP.NET и обратите внимание, что нет исходного кода для события. Это ожидаемо, потому что это код не нашего приложения.
  • 19. Рисунок 27 Событие ASP.NET не показывает исходный код по умолчанию 12. Выберите второе событие POST ASP.NET. Мы будем использовать это как ссылку в переходе к точке в сеансе отладки, когда начинается логика добавления элемента. Рисунок 28 Выбранное событие POST ASP.NET 13. Вернитесь к полному списку записанных событий, щелкнув на синий «X» справа от поля поиска.
  • 20. Рисунок 29 Очистка поиска IntelliTrace 14. Выберите первое событие ADO.NET, которое произошло после выбранного события ASP.NET. Это покажет, что каждый элемент, добавленный в корзину, приводит к поиску клиента в базе данных. Рисунок 30 Событие ADO.NET 15. Выберите ссылку «Calls View» в нижней части выбранного события, чтобы показать полную иерархию вызовов сеанса отладки. Верхний фрейм в представлении вызовы показывает стек для выбранного вызова.
  • 21. Примечание: Можно также использовать ссылку «Switch to IntelliTrace Calls View» в верхней части окна IntelliTrace. Рисунок 31 Расположение ссылка“Calls View” Рисунок 32 Представление вызовов IntelliTrace 16. Представьте себе, что мы тесно знакомы с базой кода, поэтому мы знаем, что нам нужно перейти назад по времени к вызову стека ProcessRequestNotification для того, чтобы найти
  • 22. интересующий код. Дважды щелкните на вызове 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 = …)” как параметр. Переходы с представлением вызовов являются быстрым способом для получения видения иерархии вызовов, и позволяет делать большие прыжки по всей иерархии вызовов без необходимости шагать построчно.
  • 23. Рисунок 34 Представление вызовов IntelliTrace, которое показывает вызов метода AddItem 21. В окне Locals разверните вызов функции «AddItem» для проверки, что правильный продукт добавлен в корзину и что добавляемое количество 1. В любой момент с отладкой с помощью IntelliTrace вы можете посмотреть собранные переменные в окне Autos/Locals/Watch или с помощью подсказок в редакторе. Рисунок 35 Окно Locals, показывающее параметры вызова AddItem 22. Шагните вперед на 2 вызова, дважды нажав F10. Имейте в виду, что, поскольку мы находимся в режиме отладки IntelliTrace, мы шагаем по записанным событиям и вызовам сайтов, а не по строкам кода.
  • 24. Рисунок 36 Расположение метода Location in AddItem, где вызывается метод AdjustQuantity Примечание: Вы также можете использовать набор элементов управления «VCR» стиля, показано в поле управления окна исходного кода. 23. В окне Locals разверните вызов функции «AdjustQuantity» чтобы увидеть, какое количество устанавливается в корзину после добавления второго продукта. Поскольку мы ожидаем скорректированное количество на 2, мы нашли местоположение ошибки. Рисунок 37 Окно Locals показывает некорректное количество 24. Остановите ткущую сессию отладки (Debug | Stop Debugging). 25. Измените вызов AdjustQuantity(…) так, чтоб он добавлял новое количество, передаваемое в метод AddItem.
  • 25. Рисунок 38 Исправленный вызов метода AdjustQuantity 26. Проверьте исправления, добавив тот же продукт дважды, чтобы проверить, что количество в корзине показывает значение 2. Рисунок 39 Корзина показывает корректное значение количества купленных вещей Примечание: Вы можете очистить текущую корзину, если необходимо, вручную удалив элементы или выбрав Tools | Safety | Delete Browsing History в Internet Explorer. Свои отзывы и предложения вы можете отправить по электронной почте: VSKitFdbk@Microsoft.com © 2013 г. Корпорация Microsoft. Все права защищены.