Debugowanie : jak wyszukiwać i naprawiać błędy w kodzie oraz im
Transkrypt
Debugowanie : jak wyszukiwać i naprawiać błędy w kodzie oraz im
Debugowanie : jak wyszukiwać i naprawiać błędy w kodzie oraz im zapobiegać / Paul Butcher ; [tł. Andrzej Grażyński]. – Gliwice, cop. 2010 Spis treści Od tłumacza słów kilka 9 Przedmowa 13 Część I. Istota problemu Rozdział 1. W tym szaleństwie jest metoda 19 1.1. 1.2. 1.3. 1.4. 1.5. 20 22 23 24 28 Debugowanie to coś więcej niż eksterminacja błędów Metoda empiryczna Struktura procesu debugowania Przede wszystkim rzeczy najważniejsze Do dzieła! Rozdział 2. Reprodukcja 29 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 29 32 32 34 43 52 55 Najpierw reprodukcja, potem pytania Kontrolowane zachowanie aplikacji Kontrolowane środowisko Kontrolowane dane wejściowe Ulepszanie reprodukcji Gdy błąd nie chce się ujawnić Podsumowanie Rozdział 3. Diagnoza 57 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 57 63 70 71 76 80 81 Gdy debugowanie staje się nauką Sztuczki i chwyty Debuggery Pułapki Gry umysłowe Zweryfikuj swoją diagnozę Podsumowanie Rozdział 4. Poprawki 83 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 84 85 87 89 91 92 93 Czysta tablica Testowanie Eliminowanie przyczyn, nie objawów Refaktoryzacja Kontrola wersji Inspekcja kodu Podsumowanie Rozdział 5. Refleksja 95 5.1. 5.2. 5.3. 5.4. 5.5. 95 97 99 102 102 Jak to w ogóle mogło działać? Co poszło nie tak? Nigdy więcej tego samego błędu Zamykanie pętli Podsumowanie Część II. Szersza perspektywa Rozdział 6. Chyba mamy problem... 105 6.1. 6.2. 6.3. 6.4. Tropienie błędów Współpraca z użytkownikami Współdziałanie z innymi zespołami Podsumowanie 106 109 116 117 Rozdział 7. Pragmatyczna nietolerancja 119 7.1. 7.2. 7.3. 7.4. 119 122 125 129 Błędy mają pierwszeństwo Debugowanie a psychologia Zasypywanie przepaści jakościowej Podsumowanie Część III. Debug-Fu Rozdział 8. Przypadki szczególne 133 8.1. 8.2. 8.3. 8.4. 8.5. 8.6. 8.7. 8.8. 133 134 139 142 144 147 150 154 Łatanie istniejącego oprogramowania Kompatybilność wersji Współbieżność Błędy heisenbergowskie Problemy z wydajnością Systemy osadzone Błędy w obcym oprogramowaniu Podsumowanie Rozdział 9. Idealne środowisko debugowania 9.1. 9.2. 9.3. 9.4. Automatyczne testowanie Kontrola wersji Automatyczne budowanie binariów Podsumowanie 155 155 158 163 171 Rozdział 10. Naucz swe oprogramowanie samodebugowania 173 10.1. 10.2. 10.3. 10.4. 174 184 189 195 Założenia i asercje Binaria debugowalne Wycieki zasobów i błędna obsługa wyjątków Podsumowanie Rozdział 11. Antywzorce 197 11.1. 11.2. 11.3. 11.4. 11.5. 11.6. 11.7. 11.8. 197 198 200 202 203 205 206 207 Inflacja priorytetów Primadonna Zespół serwisowy Gaszenie pożaru Pisanie od nowa Bezpański kod Czarna magia Podsumowanie Dodatki Dodatek A: Materiały 211 A.1. A.2. A.3. A.4. 211 215 216 218 Systemy kontroli wersji i śledzenia problemów Narzędzia zarządzania generowaniem binariów i integracją ciągłą Przydatne biblioteki Inne narzędzia Skorowidz 223 oprac. BPK