Dziś będzie o jeszcze jednym typie breakpointu. Kiedy może się on przydać zobaczmy na przykładzie.
Automatycznie właściwości
Wszyscy kochamy automatyczne właściwości, oszczędzają one nam czas i redukują ilość kodu jaki musimy napisać. Jedyną (?) ich wadą jest niemożliwość ich debuggowania. Często, tego nie potrzebujemy, ale czasem przydaje się możliwość ustawienia breakpoint’a na set lub get i np. podejrzenie call stack’a. Zwykłe postawienie w tym miejscu pułapki skutkuje następującym stanem. W Visual Studio widzimy breakpoint jednakże gdy tylko uruchomimy aplikację nasza pułapka znika.
- namespace ConsoleApplication2
- {
- class Program
- {
- static void Main(string[] args)
- {
- new Program().SetMe = “I’m setting u”;
- }
- public string SetMe { get; set; }
- }
- }
Aby postawić pułapkę na takiej właściwości skorzystajmy z okna New Breakpoint (CTRL+B). To co nam się ukaże to okno tworzenia pułapki.
Dodawanie breakpointa |
W polu Function skasujmy to co jest wpisane i zamiast tego dajmy: ConsoleApplication2.Program.set_SetMe (pełna nazwa nie jest wymagana jeśli nazwa identyfikuje nam obiekt jednoznacznie – inaczej podepniemy się do wszystkich takich właściwości). Upewnijmy się, że mamy odznaczone pole ‘Use IntelliSense…’ – inaczej dostaniemy komunikat o braku potwierdzenia.
Teraz jak uruchomimy naszą aplikację – zatrzyma się ona w momencie wywołania settera. Na pasku bocznym nie zobaczymy jednak oznaczenia ustawionej pułapki (tu może się przydać info z poprzedniego posta – Dźwiękowy breakpoint) jednakże będziemy mogli podejrzeć call stack, czy w oknie Watch podejrzeć wartość obiektu value. Oczywiście taka pułapka jest wylistowana w oknie Breakpoints i możemy robić z nią standardowe modyfikacje typu: warunkowy breakpoint, hit count, etc.
Podobne zabawy można robić z podpinaniem się pod event’y z tym wyjątkiem, że tam będą metody zaczynające się od add i remove.
Founder of Octal Solutions a .NET software house.
Passionate dev, blogger, occasionally speaker, one of the leaders of Wroc.NET user group. Microsoft MVP. Podcaster – Ostrapila.pl