Kiedy używać debuggera?

0

Czy ktoś z was używa debuggera do naprawiania błędów w swoich programach?
Jeżeli tak, to moglibyście mi podać jakąś przykładową sytuację, w której debugger był wam potrzebny?

Mi jak dotąd zawsze wystarczało dodanie kilku std::cout<< w celu sprawdzenia jakichś zmiennych i po paru chwilach wiedziałem w czym tkwi problem, ale pewnie wynika to ze względnie niskiego poziomu złożoności moich programów :)

0
Ymil napisał(a)

Czy ktoś z was używa debuggera do naprawiania błędów w swoich programach?
Jeżeli tak, to moglibyście mi podać jakąś przykładową sytuację, w której debugger był wam potrzebny?

:| o lol, dobry jesteś: za każdym razem kiedy coś nie działa tak jak to jest w moim zamyśle

Ymil napisał(a)

Mi jak dotąd zawsze wystarczało dodanie kilku std::cout<< w celu sprawdzenia jakichś zmiennych i po paru chwilach wiedziałem w czym tkwi problem, ale pewnie wynika to ze względnie niskiego poziomu złożoności moich programów :)

bardzo rzadko piszę w konsoli, co prawda zawsze wszędzie jest coś do pokazania komunikatu typu ShowMessage/MessageBox, więc można podobnymi zabiegami się bawić, tylko po co skoro jest debugger i szybciej załatwia sprawę,

no i ta złożoność programów, napiszesz coś więcej niż hello world to zobaczysz, często jest tak, że nawet nie wiadomo w którym miejscu coś jest źle, bo krzaczy się w miejscu które jest napisane dobrze, a to wcześniejsze zabiegi coś chrzanią, wtedy odpalasz program i od pierwszej linijki śledzisz co się dzieje dokładnie oglądając czy każda linijka robi to co ma robić

0

Debugger, niezależnie od języka, przydaje się w przypadku, gdy musisz sprawdzić nie tyle co jakąś jednostkę kodu (klasę, metodę, funkcję) co prześledzić kolejność wywołania. Zamiast wstawiać dziesiątki outów wystarczy ustawić kilka breakpointów w interesujących nas miejscach.
Czasami użycie jest skomplikowane, zresztą jak użycie wszystkiego co wymyśliły kobiety (tak pierwszy debugger pochodzi od kobiety!), ale zaprzyjaźnienie się z nim ułatwi ci życie. Zdecydowanie przy trochę większej ilości kodu łatwiej jest go użyć niż wpisywać i kasować dziesiątki linijek outów.

Co do sprawdzania poprawności zmiennych to polecam zapoznanie się z testami jednostkowymi i metodyka Test Driven Development (TDD). Choć na początku pisanie nadmiarowego kodu testującego jest upierdliwe to po pewnym czasie wchodzi w krew i ułatwia życie.

0

Kiedy, używam debuggera? Zawsze! Jak chce usunąć bug-a, albo jak chce zrozumieć czyjś kod.
Takie tworzenie logów jak opisałeś używam jedynie w przypadku, gdy zależności czasowe są krytyczne i debugger po prostu zakłóciłby warunki, w jakich pojawia się bug. Jednak jeśli coś takiego robię to stosuje makra, których definicja zmienia się zależnie od obecności odpowiedniej flagi (zwykle stosuje do tego odpowiednią bibliotekę swoją lub cudzą zależnie od freamework'a jakiego używam).

1 użytkowników online, w tym zalogowanych: 0, gości: 1