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 (3)

  1. Robert says:

    Super sprawa.

    Pokazuje też wygenerowany sql przez ORMy.

  2. Kuba says:

    @Robert – ORMy ? Czy ORM ? Bo że z EF pokazuje to nie mam watpliwości.

  3. Robert says:

    LinqToSql też

    Obstawiam, że z reszta też współgra

Skip to main content