Интересности      Книги      Утилиты    

30 апреля 2010 г.

IntelliTrace или historical debugger в Visual Studio 2010

Наверное, одним из самых интригующих нововведений в Visual Studio 2010 является IntelliTrace или как его представляли ранее historical debugger. И после релиза новой студии можно сложить свое мнение об этой возможности и ее практическом применении или необходимости – в общем, если быть кратким, нужно определится – зачем оно нам необходимо

Что такое IntelliTrace? Это новая фича, и соответственно новое окно при отладке, которое объединяет в себе обычную трассировку (output окно в Visual Studio), отладчик и стек вызовов. Т.е. такой себе микс уже существующих окон и соответственно возможностей – output + callstack + debugger = IntelliTrace.

image

IntelliTrace представляет собой окно, которое появляется при отладке или которое можно показать из Debug > Windows. При попадании в код (breakpoint, возникновение expcetion и т.п.) в нем показываются все эвенты, которые он записывает, в их числе exceptions, действия с элементами управления, обращения к БД и многие другие (посмотреть/включить/отключить их можно в опциях Tools > Options > IntelliTrace > IntelliTrace events). Самые новые события находятся внизу списка, и соответственно самые старые вверху. Событие Live event – это то где мы сейчас находимся «в коде» во время исполнения.

Выбрав определенное событие, можно перейти в то место кода где оно возникло, просмотреть стек вызовов и даже значения переменных (если выбран режим работы IntelliTrace events and call information).

image

Есть два режима работы:
- Event only (только события)
- Events and call information (события и информация о вызовах)

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

image

Там же в узле IntelliTrace events можно настроить на какие события стоит реагировать.

Итак все же нужен ли IntelliTrace? Это несомненно достаточно комфортное дополнение к уже существующим возможностям отладки, которое может значительно упростить отладку, например вызовы события UI элементов управления, обращения к базе, все можно легко увидеть и перейти к нему в коде. IntelliTrace может значительно упростить отладку или сделать ее комфортнее.

image

Производительность можно немного улучшить используя Event only режим и только изредка переключаясь в Events and call information, благо это можно сделать быстро из окна IntelliTrace. Также можно указать с каких конкретно модулей собирать информацию. По-умолчанию стоит опция, собирать со всех (collect data from all modules except following) кроме майкрософтовских, ее можно поменять на «собирать только со следующих» (collect data from only following modules).

image

Также IntelliTrace используется в новой системе тестирования - Microsoft Test And Lab Management. IntelliTrace добавляются к багам и разработчики позднее могут открыть их у себя на компьютере чтобы воспроизвести ситуацию в точности. Что делает работу с таким багом значительно удобнее. Причем даже если исходный код на машине разработчика отличается от записи - есть возможность при правильной настройке "pdb сервера", отлаживать код актуальной для бага версии

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

1 комментарий:

  1. Фича на самом деле замечательная, и я очень рад тому, что она появилась наконец то в студии. Удивляет меня только тот факт, что это произошло только сейчас, так как в некоторых реализациях smalltalk она существует с 80-х прошлого века.

    ОтветитьУдалить