O IntelliTrace pisałem już wielokrotnie. Do tej pory nie wyjaśniłem jednak, że chociaż IntelliTrace nazywamy debugger'em historycznym to w rzeczywistości IntelliTrace jest profilerem. Dokładniej mówiąc jednym z komponentów składowych IntellITrace jest niezarządzana implementacja interfejsu ICorProfiler. Profiler ten komunikuje się z zarządzaną częścią IntelliTrace, czyli z programem IntellITrace.exe. IntellITrace.exe jest natomiast używane przez Visual Studio...
O zdarzeniach IntelliTrace pisałem już kilkakrotnie (Własne zdarzenia IntelliTrace!, Własne zdarzenia IntelliTrace 2). Każdy z tych postów dotyczył jednak zdarzeń definiowanych deklaratywnie w pliku XML. Jest to stosunkowo proste, nie potrzeba nic kodować ale co z tym związane ma to też swoje ograniczenia. W takiej sytuacji z pomocą przychodzą nam Programmable Data Query (w skrócie PDQ) czyli klasy implementujące interfejs Microsoft.HistoricalDebuggerHost.IProgrammableDataQuery....
Bazy danych i XML 4548 dni, 9 godzin, 14 minut temu 148 źrodło rozwiń
autor: Jakiś czas temu pracując z IntelliTrace próbowałem zdefiniować zdarzenie diagnostyczne dla pewnej metody. Dla ustalenia uwagi niech jej sygnatura wygląda tak, jak poniżej. string Flip(string s) Moim celem było, aby opis zdarzenia zawierał wynik zwrócony przez metodę oraz wartość argumentu s. Inaczej mówiąc, aby w oknie IntelliTrace Events View w Visual Studio 2010 zdarzenie zarejestowane dla wywołania metody z argumentem s="Hello" i wynikiem "olleH" wyglądalo tak: "olleH" Flip("Hello") O defin...
autor: Swego czasu w postach Własne zdarzenia IntelliTrace! oraz Własne zdarzenia IntelliTrace 2 opisałem jak zmodyfikować plik CollectionPlan.xml zawierający plan działania IntelliTrace (historycznego debuggera) tak, aby zdefiniować swoje własne zdarzenie IntelliTrace (ważny punkt w historii działania programu kiedy IntelliTrace nagrywa stan aplikacji). Ostatnio wróciłem do tego zagadnienia i "bawię się" testując różne możliwości IntelliTrace. Niestety czasami, po zmodyfikowaniu pliku Collect...
Moje ostatnie dwie godziny życia spędziłem na rozwiązaniu problemu: System.Security.VerificationException: Operation could destabilize the runtime. Który występował w trakcie serializacji obiektu z wykorzystaniem JSON.NET podczas debugowania aplikacji – po deployu nie występował. By było zabawniej, przy wykorzystaniu JavaScriptSerializer jak i na moim komputerze firmowym, problem nie występował. Czyli coś musiało być nie tak z moją konfiguracją. Jedyną różnicą było włączone… IntelliTrace.
Nie jestem fanem nowego dodatku do Visual Studio 2010 zwanego IntelliTrace, jakoś do tej pory nie mogłem znaleźć dla niego zastosowania, dodatkowo działał on jedynie dla aplikacji 32 bitowych. Wszystko się zmieniło kiedy wyszedł SP1 do Visual Studio. Teraz IntelliTrace nie tylko wspiera architekturę 64 bitową, ale także debugowanie Farm w SharePoint. Postanowiłem to przetestować na bardzo popularnym błędzie FileNotFoundException w SharePoint i sprawdzić czy jestem wstanie uzyskać szybciej i sprawniej i...
Autor: Tematykę IntelliTrace poruszałem już kilkukrotnie. Dzisiaj chciałbym powrócić do zagadnienia opisanego w poście Logi IntelliTrace bez tajemnic czyli analizy logu przy pomocy IntelliTrace API. Tym razem napiszę w jaki sposób dostać się do informacji o tym kiedy została wywołana jakaś metoda, jaki wynik zwróciła i jakie były parametry wywołania. Informacje te są prezentowane w oknie Calls View w Visual Studio 2010 ale można je analizować w ograniczonym stopniu. Poniższe informacje przydadzą się każd...
W oficjalnej dokumentacji IntelliTrace można przeczytać, że narzędzie to jest dostępne tylko i wyłącznie z poziomu środowiska Visual Studio 2010. To bardzo źle ponieważ z góry przekreśla użycie IntelliTrace do diagnozowania błędów u klienta. Wyobraźmy sobie, że dostajemy zgłoszenie trudnego do powtórzenia błędu. Czy nie byłoby wspaniale uruchomić aplikację w środowisku produkcyjnym, pod kontrolą IntelliTrace i w razie wystąpienia błędu poprosić klienta o przekazanie nam plików z logami (*.iTrace). Nie ws...
Autor:Dzisiaj, zgodnie z wcześniejszą obietnicą, chciałem pokazać w jaki sposób zdefiniować nowe zdarzenie IntelliTrace dla naszej własnej metody. W tym celu użyję bardzo prostej klasy pokazanej poniżej:
IntelliTrace, znane również pod nazwą historycznego debugger'a, to narzędzie jakie pojawiło się w Visual Studio 2010, a które stanowi rozwinięcie "tradycyjnych" debugger'ów o możliwość nagrywania historii wykonania programu w celu jej późniejszej analizy. Post ten rozpoczyna serię dotyczącą tej technologii, a w której chcę opisać zaawansowane techniki użycia IntelliTrace. IntelliTrace posiada dwa tryby pracy: podstawowy oraz rozszerzony. W trybie podstawowym stan programu zapisywany jest w momencie wys...
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?