Znajdowanie i poprawianie błędów [Debugging] - podstawy

Published: January 15, 2003 | Updated: February 24, 2005

Wstęp

"Powstał kolejny kawałek kodu. Ja go pisałem, więc jest bezbłędny. Na pewno zadziała i nie trzeba go testować." Oczywiście nic bardziej mylnego. Każdy wie, że nie ma nic bardziej irytującego w pracy nad projektem, niż członek zespołu, który myśli w taki sposób. Nawet najkrótszy program może mieć błędy a to, w jak krótkim czasie i jak sprawnie jesteśmy w stanie je odnaleźć i skorygować, często decyduje o sukcesie produktu. Pomocne okazują się narzędzia pozwalające na krokowe wykonywanie kodu, podgląd i zmianę zawartości zmiennych, pamięci, czy obserwowanie wywołań procedur.

Znajdowanie i poprawianie błędów [Debugging] można rozumieć dwojako: jako techniki wykonywania krokowego (wykorzystywanie debugger'a) lub jako strategię (całościowe podejście do fazy wyszukiwania błędów). Nie ulega wątpliwości, że sprawne posługiwanie się debugger'em znakomicie ułatwia wyszukiwanie błędów. Jednakże podstawą fazy testów i usuwania błędów jest wypracowanie strategii, polityki i narzędzi testowania i usuwania błędów.

Co nowego ?

Microsoft Visual Studio .Net, do tego co znamy z wersji 6.0, dorzuca całą gamę nowych narzędzi pod nazwą "Integrated Visual Studio .Net Debugger".

Pierwszym elementem, który jest konsekwencją wprowadzenia platformy .Net, to możliwość znajdowania i poprawiania błędów [debugging] kodu i projektów, które powstały w różnych językach i środowiskach, takich jak Visual C# .Net, Visual Basic .Net, Visual C++ .Net, Managed Extensions for C++, skrypty i kod SQL.

Środowisko umożliwia także wykrywanie i usuwanie błędów [debugging] aplikacji tworzonych dla środowiska Common Language Runtime (CLR) jak i tradycyjnych aplikacji Win32.

Spośród najważniejszych nowości, należy wymienić możliwość przyłączania debugger'a do działającego procesu, możliwość debug'owania procesu serwera (np, ASP .Net), debug'owanie wielu programów jednocześnie, możliwość wykrywania błędów typu "run-time error" w Visual C++, weryfikacja przepełnień bufora dla aplikacji Visual C++ (opcja kompilacji /GS), możliwość ustawienia pułapki w bibliotece DLL, która jeszcze nie została załadowana, przejścia z kodu klienta do kodu serwisu Web Services.

Znacznie łatwiej niż kiedyś można znajdować i poprawiać błędy [debugging] zdalnie, wykrywać i usuwać błędy [debugging] aplikacji wielowątkowych, rozbudowane zostały klasy ułatwiające diagnostykę i proces wyszukiwania błędów, pojawiły się dodatkowe narzędzia takie jak Visual Studio Analyzer.

Jednakże to bardziej jednolite środowisko będzie wymagało, szczególnie od pracujących w środowisku Visual Basic 6.0, drobnej zmiany przyzwyczajeń. "Edit and continue" nie jest już wspierane, nastąpiła zmiana skrótów klawiszowych dla znajdowania i poprawiania błędów [debugging] czy zmiana znaczenia okien "Immediate" oraz "Command".

Cezary Nolewajko

Ciąg dalszy artykułu w dokumencie do pobrania (Plik *.doc 71 KB) (7 stron)