Autor Wątek: Clean Project - czyli jak właśnie straciłem 2 dni  (Przeczytany 983 razy)

Offline Kuza

  • Użytkownik

# Sierpień 23, 2011, 19:35:27
Witam

Używam Visual Studio 2008 od wielu lat, jednak dwa dni temu spotkała mnie bardzo przykra sytuacja przez którą do teraz pod nosem przeklinam. Piszę sobie kod, grzebię coś w GUI, dodaję nowe widgety itp. Uruchamiam aplikację, a tu jak gdyby nigdy nic >prawie< WSZYSTKIE obiekty poznikały. Od dwóch dni szukałem jakiegoś logicznego sensu, powiązania, może gdzieś coś niechcący usunąłem, pominąłem, cokolwiek. W dalszym ciągu prawie nic się nie renderuje. Wszystko posprawdzałem 2x, kod czysty jak łza prócz jednej rzeczy, jeden z std::vector'ów według debuggera przetrzymywał w sobie 2109412~ obiektów które miały wartości-krzaki, jednak kod operował na vectorze tak, jakby były tam poprawne wartości (size() zwracał np. 10). No cóż, u mnie wielki wtf na twarzy i pomysł z Clean Project. Pomogło.

Moje pytanie: o co chodzi? Gdzie był błąd? Dlaczego? Jak czegoś takiego uniknąć i na co zwracać uwagę w przyszłości aby taka sytuacja się nie powtórzyła?


Przeczytałem dawno temu na jednym z devblogów (chyba Joela Spolsky'ego), że 99.9% błędów w kodzie jest po stronie programisty, a nie IDE. Czy mój problem kwalifikuje się do tych 0.1% ;)?
« Ostatnia zmiana: Sierpień 23, 2011, 19:37:39 wysłana przez Kuza »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Dab

  • Redaktor
    • blog

# Sierpień 23, 2011, 19:56:15
Incremental build nie jest idealny i czasem PDB potrafi się popsuć. Jeżeli pierwszy raz masz sytuację, że debugger pokazał 2109412 obiektów czy inną głupotę to jesteś naprawdę w czepku urodzony. :)

Błędy w samym wygenerowanym kodzie to rzadkość, chociaż co jakiś czas IB potrafi zrobić sieczkę w danych statycznych i wtedy tylko clean+rebuild pomaga.
« Ostatnia zmiana: Sierpień 23, 2011, 20:05:06 wysłana przez Dab »

Offline Kuza

  • Użytkownik

# Sierpień 23, 2011, 20:07:07
No cóż, wniosek więc taki, że jak zaczynają pojawiać się dziwne wartości to znak że czas odświeżyć projekt ;)

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Sierpień 24, 2011, 09:23:20
Rzadko bo rzadko, ale jednak to się zdarza. Nie ma co przy każdym błędzie jako pierwsze robić Clean i Rebuild projektu, ale z drugiej strony warto na to wpaść szybciej, niż po 2 dniach walki. Moim zdaniem to jest kwestia doświadczenia. Na tego typu problem wskazuje zwykle sytuacja, kiedy błąd zdaje się totalnie bez sensu.