[ Pobierz całość w formacie PDF ]
.Sekcje CodeGuard Report i Error Message Box okreœlaj¹ sposób raportowaniab³êdów przez CodeGuarda.Zaznaczenie opcji Statistic powoduje produkowanieprzez CodeGuarda statystyki dotycz¹cej przydzia³u i zwalniania pamiêci, odwo³añdo wybranych funkcji Win32 API i wykorzystania zasobów; statystyka tauzupe³niana jest list¹ wykorzystywanych modu³Ã³w na koñcu dziennika.OpcjaResource Leaks odpowiedzialna jest za sygnalizowanie – po zakoñczeniu programu– ewentualnego „wycieku” zasobów.Opcje sekcji Error Message Box okreœlaj¹tytu³ i treœæ (ewentualnego) komunikatu wyœwietlanego przez CodeGuardaniezale¿nie od wpisu do dziennika.Karty Resource Options i Function Options zawieraj¹ opcje okreœlaj¹ce szczegó³ynadzorowania przez CodeGuarda zasobów, uchwytów plikowych i wywo³añ funkcji.Wwiêkszoœci przypadków zadowalaj¹ce s¹ ustawienia domyœlne tych opcji; jedn¹ zopcji, której zaznaczenie mo¿e byæ niekiedy u¿yteczne, jest opcja Log each callna karcie Function Options, powoduj¹ca raportowanie ka¿dego wywo³aniaokreœlonej funkcji (odnosi siê ona do funkcji aktualnie podœwietlonej).Za pomoc¹ karty Ignore Modules mo¿liwe jest okreœlenie listy modu³Ã³w, co doktórych CodeGuard powinien pozostawaæ bezczynny.Wykorzystanie CodeGuardaW zasadzie wiêkszoœæ fatygi zwi¹zanej z wykorzystaniem funkcji CodeGuardazamyka siê w do³¹czeniu go do aplikacji i odpowiednim skonfigurowaniu.Wuruchomionej aplikacji pozostaje tylko przygl¹danie siê wpisom do dziennika; pozakoñczeniu pracy aplikacji dziennik ten dostêpny jest w pliku tekstowymNazwaProjektu.cgl, który mo¿na ogl¹daæ za pomoc¹ dowolnego edytora tekstowego,np.Notatnika lub WordPada.Przegl¹danie dziennika z poziomu IDE – inicjowaneza pomoc¹ opcji View|Debug Windows|CodeGuard Log lub klawiszy Ctrl+Alt+O – jestjednak bardziej przyjazne dla u¿ytkownika, bowiem C++Builder interpretujeinformacjê zawart¹ w dzienniku i formatuje j¹ w czytelny sposób, m.in.grupuj¹cposzczególne wpisy wed³ug rodzaju zaistnia³ego b³êdu.Przyk³ad okna z taksformatowan¹ informacj¹ przedstawia rysunek 5.11.Rysunek 5.11.Przyk³adowy raport w dzienniku CodeGuardaNa pasku narzêdziowym widoczne s¹ dwa przyciski – Stop i Clear; s¹ one taknaprawdê prze³¹cznikami.W³¹czenie pierwszego z nich spowoduje wstrzymaniewykonywania aplikacji ka¿dorazowo przy stwierdzeniu b³êdu przez CodeGuarda; gdybêdzie on wy³¹czony, aplikacja wykonywaæ siê bêdzie bez zatrzymywania.W³¹czenie drugiego z przycisków spowoduje czyszczenie dziennika ka¿dorazowoprzy starcie aplikacji.Podwójne klikniêcie którejœ z pozycji w oknie CodeGuard Log spowoduje wskazaniewiersza kodu Ÿród³owego (w oknie edytora kodu) odpowiedzialnego za b³¹draportowany w tej pozycji; je¿eli kod Ÿród³owy odnoœnego fragmentu nie jestdostêpny, zaznaczany jest odpowiedni rozkaz maszynowy w oknie CPU.Podobnyefekt daje u¿ycie którejœ z opcji View Source i Edit Source menu kontekstowegodanej pozycji – opcje te ró¿ni¹ siê od siebie tylko tym, i¿ w przypadkupierwszej z nich okno edytora kodu nie staje siê oknem aktywnym.Przyk³ad zastosowaniaNa do³¹czonej do ksi¹¿ki p³ycie CD-ROM znajduje siê projekt o nazwieCodeguardProj, zawieraj¹cy wiele konstrukcji wywo³uj¹cych typowe b³êdywychwytywane przez CodeGuarda i oczywiœcie typowe jego reakcje na te b³êdy.Poza oczywist¹ okazj¹ zobaczenia CodeGuarda w akcji projekt ten stanowi równie¿swoist¹ wskazówkê odnoœnie tego, jak owe b³êdy przek³adaj¹ siê na konstrukcjeprogramistyczne w C++, a to znakomicie u³atwia programistom zrozumienie istotytego, co kryje siê po postaci¹ lakonicznych komunikatów.Formularz g³Ã³wnyprojektu (zobacz rys.5.12) umo¿liwia selektywne prowokowanie wspomnianychsytuacji – wystarczy jedynie klikn¹æ przycisk znajduj¹cy siê obok stosownegokomunikatu
[ Pobierz całość w formacie PDF ]