다음을 통해 공유


VS2010: Cecha Dnia - IntelliTrace

Debugger w Visual Studio 2010 znacząco się zmienił. Przy wcześniejszych betach na pewno usłyszeliście takie hasło jak Debugger Historyczny. Ta enigmatycznie brzmiąca nazwa od Beta 2 zmieniła się w IntelliTrace, który zapewne zostanie z nami już do wersji finalnej.

Czym więc jest IntelliTrace?

Łatwo to sprawdzić. Wystarczy ustawić pułapkę w swoim kodzie .NET Framework (tylko). Po prawej stronie powinno ukazać się następujące okienko:

image

Debugując i przechodząc dalej krok po kroku zaobserwujemy, że te kroki zostały przez IntelliTrace zapamiętane. Dla każdego takiego kroku mamy trochę więcej informacji niż wcześniej jak wgląd w zmienne lokalne w danym momencie, Call Stack, w którym wątku aktualnie operujemy. W rozwijanym menu widzimy wszystkie otwarte wątki. W kolejnym rozwijanym menu możemy zaznaczyć granulację informacji, która nas interesuje (na przykład wpisy w rejestrze).

IntelliTrace powinien być znaczącym narzędziem w sprawdzaniu błędów trudnych do powtórzenia, zwłaszcza że informacje uchwycone przez ten mechanizm można nagrać.

image

Polecam przyjrzeć się opcjom ukrytym w Tools->Options->IntelliTrace, które pozwolą nam elastycznie skonfigurować wydarzenia, które w nagraniu są dla nas interesujące.

IntelliTrace wspiera projekty dla .NET Framework 2.0,3.0,3.5 oraz 4.0 tworzonych w C# lub VB.Net. Wierzę, że znajdzie zastosowanie w wielu typach projektów od aplikacji Web w ASP.Net, poprzez WinForms, WPF czy serwisy WCF. Niestety niewspierane są projekty dla C++ czy innych języków (np. skryptowych) wspieranych przez Visual Studio. Wyjątkiem jest F#, ale tutaj potraktowałbym wsparcie dla IntelliTrace bardziej jako eksperyment.

Podobnie jest z Silverlightem, gdzie próba debugu, jeszcze w środowisku 64bitowym, wyeksponowała kolejne ograniczenie:

image

 

 

IntelliTrace nie działa w przypadku projektów x64 (jakichkolwiek).
W kwestii wsparcia dla Silverlight ciekawy wpis jest na tym forum.

Comments

  • Anonymous
    February 23, 2010
    Super sprawa. Pokazuje też wygenerowany sql przez ORMy.

  • Anonymous
    February 24, 2010
    @Robert - ORMy ? Czy ORM ? Bo że z EF pokazuje to nie mam watpliwości.

  • Anonymous
    February 25, 2010
    LinqToSql też Obstawiam, że z reszta też współgra