BETA
Aby się zalogować, najpiew wybierz portal.
Aby się zarejestrować, najpiew wybierz portal.
Podaj słowa kluczowe
Słowa kluczowe muszą mieć co najmniej 3 sąsiadujące znaki alfanumeryczne
Pole zawiera niedozwolone znaki

Baza wiedzy











Visual Studio debugowanie warunkowe

03-12-2013 06:00 | Maciej Grabek
Każdy z programistów .NET zapewne wie jak debugować pisane przez siebie aplikacje. Tymczasem niewielu z nas wie o czymś, co można przetłumaczyć jako debugowanie warunkowe (conditional debugging).

Przyjrzyjmy się zatem pewnym scenriuszom. W pierwszej sytuacji załóżmy, że mamy do przetestowania błędnie dziłający kod, który iteruje się przez dużą kolekcję obiektów. Określenie „dużą” pozostawiam każdemu do samodzielnego wyjaśnienia – dla jednych jest to kilkaset, dla innych kilka milionów obiektów. Chcąc sprawdzić przyczynę problemu stawiamy w pętli breakpoint. Pojawia się jednak pewien problem. Wykonywanie kodu jest na nim zatrzymane tyle razy ile mamy obiektów w kolekcji. Niestety w większości przypadków uniemożliwia to sprawną diagnostykę kodu. Jest to jeszcze trudniejsze jeżeli wiemy, że dany błąd pojawia się od pewnego momentu lub wręcz dla konkretnego elementu! Z pomocą przychodzi możliwość dodania warunkowego brekpointa. Aby to zrobić zamiast kliknąć LMB na pasku breakpointów używamy menu kontekstowego, które posiada opcję Condition widoczną poniżej.

Dodając nowy breakpoint warunowy podajemy fragment kodu, ktory jest ewaluowany aby stwierdzić, czy Visual Studio powinno zatrzymać działanie kodu, czy nie.

Jest również drugi scenariusz związany z naszym zagadnieniem. Wcześniej napisałem, że kod warunku jest ewaluowany. Tak naprawdę to jest on wykonywany! Jaka to róźnica? Załóżmy, że mamy jako warunek taki kod:

Item.Price ==200

Możemy równie dobrze wpisać tam kod:                          

Item.Price = 200

Zamiast spradzić cenę będziemy ją zwyczajnie nadpisywać! Ale to nie wszystko – możemy tego użyć do dowolnej logiki, która ułatwi nam pracę, na przykład logowanie do konsoli.

Jak widać debugowanie warunkowe posiada ogromny i nieodkryty przez wielu potencjał, po który warto sięgnąć w codziennej pracy.

Komentarze 0

pkt.

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.