2011-03-08 8 views
5

Zamierzam stworzyć bardzo szczegółowe narzędzie do profilowania, które nasłuchuje zdarzeń określonego typu, czyli mam typ T, który ma swoje zdarzenia. Chcę wiedzieć za każdym razem, gdy jakikolwiek przypadek T wyzwala zdarzenia.Jak zbudować niestandardowy debugger, który dołącza do procesu .NET i nasłuchuje zdarzeń określonego typu?

Użytkownik uruchamia aplikację do profilowania, dołącza do procesu i aplikacja rozpoczyna generowanie dzienników.

Czy to możliwe? Jeśli to prawda, jak zacząć?

+0

Powinieneś zaakceptować odpowiedź lub pozostawić komentarz dotyczący tego, czego dokładnie szukasz. –

Odpowiedz

2

Kilka lat temu pracowałem nad czymś podobnym, ale nie do końca profilującym. Sposób, w jaki zacząłem, polegał na sprawdzeniu kodu źródłowego CLR Profiler dostępnego w witrynie MSDN, a następnie sprawdzeniu, w jaki sposób łączy się on z działającą aplikacją, jest mały niezarządzalny kod, który musiałbyś zrobić, ale można go bezpośrednio odebrać. od CLR Profiler;)

Poniżej znajduje się kilka miejsc, w których można zacząć patrzeć.

ICorDebug - Udostępnia metody umożliwiające programistom debugowanie aplikacji w środowisku CLR.

Additional Debugging Interfaces - Wszystkie sposoby, w jakie można podłączyć się do środowiska CLR w celu debugowania i profilowania.

ICorProfilerCallback - Pierwszy interfejs do analizy profilowania.

Profiling interfaces - Dla wszelkich zdarzeń profilowania, które chcesz zaimplementować.

CLR Profiler - Przyjrzałbym się temu źródłu, robi wszystko, co chcesz.

1

Czy znasz dotnet performance counter? Nie mają nic wspólnego z debugowaniem, ale są dobre do łapania i liczenia specjalnych wydarzeń.

Można ich używać do sprawdzenia, ilu klientów jest zalogowanych w aplikacji internetowej.

Powiązane problemy