2014-04-14 18 views

Odpowiedz

17

drużyny Debugger ma dobrą blogu na ten temat z przykładami, a także: http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/10/tracepoints.aspx

Tracepoints nie są nowością w ogóle (oni byli w Visual Studio od VS 2005). I nie są one punktami przerwania jako takimi, ponieważ nie powodują przerwania wykonywania programu. To może być przydatne, gdy trzeba coś sprawdzić, ale nie zatrzymywać programu, ponieważ powoduje to zachowanie błędu, którego nie można repro itp.

Punkty Tracepoints to próba przezwyciężenia przypadku, gdy nie można zatrzymać programu aby sprawdzić coś, co spowoduje, że pewne zachowanie nie będzie repro, pozwalając punktowi przerwania rejestrować informacje w oknie wyjściowym debugowania i kontynuować, bez zatrzymywania w interfejsie użytkownika. Możesz to również zrobić za pomocą makr, ale może to zająć więcej czasu.

Aby ustawić punkt znacznika, najpierw ustaw punkt przerwania w kodzie. Następnie użyj menu kontekstowego na punkcie przerwania i wybierz element menu "Gdy Hit ...". Możesz teraz dodać instrukcje dziennika dla punktu przerwania i wyłączyć domyślną akcję zatrzymania, aby zalogować się i przejść. Istnieje wiele innych informacji, które można dodać do ciągu dziennika, w tym statyczne informacje na temat położenia pliku bp, takie jak plik, linia, funkcja i adres. Można również dodawać informacje dynamiczne, takie jak wyrażenia, funkcje wywołujące lub stacje wywoławcze. Takie rzeczy, jak dodawanie informacji o wątkach i informacji o procesach, mogą pomóc w śledzeniu błędów czasowych podczas pracy z wieloma wątkami i/lub procesami.

5

Zgodnie z MSDN:

Tracepoints to nowa funkcja debugera w Visual Studio. Punkt kontrolny to punkt przerwania z powiązaną z nim niestandardową akcją. Po trafieniu punktu kontrolnego debugger wykonuje określoną akcję tracepoint zamiast lub, dodatkowo, wykonując program przerwania.

+0

Nie jestem pewien, czy jest to nowe, zostały wprowadzone w VS 2008 – Habib

2

przypadków użycia, gdzie może okazać się bardzo przydatna:

Może to przypadek, gdy chcesz debugowania funkcji, która jest wywoływana liczna ilość razy (powiedzmy w setkach), a może po prostu chcesz aby zobaczyć trend, w którym zmienia się zmienna lokalna. Można to zrobić, umieszczając punkt przerwania, ale pomyśl o zatrzymaniu (podczas debugowania) tej funkcji setki razy i podjęciu bólu zapisywania wartości w notatniku. Robiąc to jest tak łatwo, używając tracepoint, bezpośrednio umieszcza dzienniki w oknie "Wyjście", które można łatwo przeanalizować, a nawet wyczyścić. Oszczędność godzin ręcznego wysiłku i cierpliwości.

Przykład dziennika w oknie Output (można uruchomić do setek wierszy):

keyframeNo = 2, time = 1100 
keyframeNo = 1, time = 0 
keyframeNo = 1, time = 1 
keyframeNo = 1, time = 1 
keyframeNo = 1, curTime =22 
curTime=1132835, keyframeno=15 
keyframeNo = 2, time = 1 
keyframeNo = 2, time = 1 

Jak go używać:

kliknij prawym przyciskiem myszy na kod> Breakpoint> Wstaw TracePoint

Zaleta korzystania z usługi TracePoint:

  • Istnieje bez potrzeby dodawania kodu do generowania dzienników. Tak więc, nie napięcie do budowania kodu, również nie ma kosztów czyszczenia kodu.
  • To nie jest blokowanie przepływu kodu w trakcie wykonywania, w przeciwieństwie do punktów przerwania.
  • Może również wydrukować wartość zmiennych lokalnych. Wpisz {local_variable} po kliknięciu "Po naciśnięciu klawisza"
  • Możesz również wstawiać punkty tracepunktów w stanie debugowania, tak samo jak w przypadku punktu przerwania.
Powiązane problemy