2005.01_Gubed–debugger skryptów w PHP_[Oprogramowanie].pdf

(476 KB) Pobierz
332798367 UNPDF
aktualności
linuxfresh
Gubed
– debugger skryptów w PHP
Piotr Machej
prosty. Owszem, łatwo nauczyć
się podstaw, a wiele rzeczy można
w nim zrobić na wiele sposobów. Pod-
czas programowania może przytrafić
się nam błąd. Szczególnie, gdy pracu-
jemy nad jakimś większym projektem.
W takim przypadku z pomocą przy-
chodzą debuggery. Jednym z nich,
przeznaczonym do analizowania pro-
gramów napisanych w PHP , jest Gu-
bed .
Do czego może przydać się debug-
ger? Na pewno nie do szukania braku-
jącego nawiasu – do tego w zupełno-
ści powinien wystarczyć dobry edy-
tor z kolorowaniem składni. Jeśli nasz
program działa nie do końca tak,
jak powinien, zapętlając się w nieskoń-
czoność lub, przeciwnie, nie wyko-
nując jakiejś pętli ani razu, to wtedy
właśnie pora na debuggera. Z jego
pomocą możemy prześledzić program
krok po kroku, obserwując zmienia-
jące się wartości zmiennych, i może
w końcu dostrzeżemy, że znów zamiast
== w warunku wstawiliśmy = . Oczy-
wiście, błąd może być zupełnie inny,
i niekoniecznie tak trywialny. Zawsze
jednak mamy większe szanse na zna-
lezienie go obserwując kod podczas
działania.
W przypadku debuggera Gubed
z pewnością ucieszy nas wiadomość,
że nie są wymagane żadne przerób-
ki w oprogramowaniu serwera, ani
tym bardziej w sprawdzanym ko-
dzie. Co więcej, możemy uruchamiać
Gubed na innym komputerze niż te-
stowany skrypt. Przykładowo, skrypt
może być uruchamiany na serwe-
rze linuksowym, a sam Gubed może
działać na naszym domowym kompu-
terze z Windows ( Gubed działa zarów-
no w środowisku Linuksa, jak i Win-
dows ).
Instalacja może sprawić nieco pro-
blemu. Tym bardziej, że ze względów
bezpieczeństwa lepiej nie dawać do-
stępu do Gubed nieupoważnionym
osobom. Jeśli do naszego kompute-
ra mają dostęp inni użytkownicy (za-
równo zdalny, jak i lokalny), koniecz-
nie powinniśmy przeczytać sekcję
Security zawartą w pliku serverse-
tup.txt . Jeśli jednak nie boimy się za-
grożeń lub potrafimy sobie z nimi po-
radzić, to możemy zabrać się za in-
stalację. Ze strony domowej pobiera-
my plik Gubed0.1.2.tar.gz , a następ-
nie rozpakowujemy go. W utworzo-
nym katalogu najpierw zainteresu-
je nas podkatalog Clients/wxGubed/ .
Wchodzimy do niego i wydajemy pole-
cenia: ./autogen.sh , ./configure , make .
Jeśli wszystko przebiegnie bez pro-
blemów (w przypadku Auroksa wy-
magany jest pakiet wxGTK-devel ), to
w podkatalogu src/ powinniśmy zna-
leźć plik o nazwie gbdwxGubed . Jest
to nasz klient, z którego będziemy ko-
rzystać.
Teraz pora na umieszczenie kil-
ku plików w głównym katalogu na-
szego serwera WWW . W tym celu po-
trzebujemy uprawnień administratora.
Znajdując się w katalogu Gubed0.1.2/ ,
wydajemy polecenie cp -r Gubed/
/var/www/html/ (zależnie od konfigura-
cji naszego serwera WWW , katalog do-
celowy może być inny).
Możemy już uruchomić nasze-
go klienta poleceniem ./gbdwxGubed .
Oprócz tego, należy uruchomić prze-
glądarkę internetową i wejść do
katalogu, w którym umieściliśmy skry-
pty Gubed (np. http://localhost/Gubed/ ).
W ten właśnie sposób będziemy pra-
cować – z pomocą przeglądarki bę-
dziemy podawać, jakie skrypty mają
być testowane (i będziemy obserwować
wyniki działania), a z pomocą klien-
ta będziemy śledzić działanie progra-
mu.
Rysunek 1. Gubed pozwala zapoznać się dokładnie z działaniem skryptu
44 styczeń 2005
oprogramowanie
M ówi się, że język PHP jest bardzo
332798367.018.png 332798367.019.png
 
 
332798367.001.png 332798367.002.png 332798367.003.png 332798367.004.png 332798367.005.png 332798367.006.png 332798367.007.png
FRESH News
Rysunek 2. Gubed może zostać zintegrowany z programem Quanta
PostgreSQL AutoDoc 1.24
Program ten pozwala na zapisywanie
do pliku XML informacji o bazie
PostgreSQL , które później mogą
być wykorzystane do stworzenia
diagramu UML . Diagram taki (wraz
z relacjami pomiędzy tabelami
i informacjami opisowymi) można
utworzyć wczytując plik XML do
programu Dia . Oprócz plików XML ,
możemy zapisywać informacje
o bazie w formatach HTML ,
GraphViz .dot , a także SGML
( Docbook 4.1 ). Program
współpracuje z każdą bazą opartą
na PostgreSQL 7.x . W najnowszej
wersji wprowadzono poprawki kilku
błędów.
http://freshmeat.net/projects/
postgresql_autodoc/
MPFC 1.3.3
MPFC to działający w trybie
tekstowym (w oparciu o bibliotekę
Curses ) odtwarzacz muzyki. Dzięki
wykorzystaniu listy odtwarzania
jest wygodniejszy w użyciu od
programów typu mpg321 . Program
obsługuje wiele różnych formatów
plików (wykorzystuje w tym celu
wtyczki). W nowej wersji znacznie
poprawiono system konfiguracji
i wprowadzono dowiązania klawiszy.
http://freshmeat.net/projects/mpfc/
Exobius 0 0.3
Grając w rozbudowane gry
z trójwymiarową grafiką,
czasem zapominamy o prostych
strzelaninach, od których wszystko
się zaczęło. Próbą stworzenia takiej
dwuwymiarowej gry jest właśnie
Exobius 0 . Gra zawiera obecnie 13
poziomów, wypełnionych broniami
i przeciwnikami. Pomimo wczesnej
fazy rozwoju, gra jest już w pełni
funkcjonalna – można przechodzić
ją od początku do końca.
Największym mankamentem jest
niedokończona grafika, która jednak
ma zostać poprawiona w następnych
wydaniach. Warto zainteresować się
tym tytułem, a może nawet wesprzeć
autora w jego wysiłkach.
http://freshmeat.net/projects/
exobius0/
Thunder&Lightning 041013
Thunder&Lightning to futurystyczny
symulator lotu. Pozwala nam zasiąść
za sterami myśliwca i toczyć walki
zarówno z innymi samolotami, jak
i z czołgami. Ładna, trójwymiarowa
grafika z pewnością ułatwi wczucie
się w grę. Program jest wciąż w fazie
rozbudowy – dopiero niedawno
został udostępniony publiczności.
Najnowsza wersja działa również
pod Windows. Obecnie można
latać jednym z dwóch dostępnych
samolotów (tytułowe Thunder
i Lightning ), lecz w przyszłości
autor zamierza udostępnić więcej
typów maszyn.
http://freshmeat.net/projects/tnl/
Przy pierwszym korzystaniu z Gubed
warto uruchomić testy. Pozwoli to na za-
poznanie się z możliwościami progra-
mu. W tym celu na wyświetlonej stronie
należy wybrać odnośnik znajdujący się
w sekcji Gubed tests . Jeśli później zdecy-
dujemy się testować własne skrypty, to
skorzystamy z odnośnika specify script to
debug (albo od razu wejdziemy na stronę
http://localhost/Gubed/StartSession.php ).
Mamy do dyspozycji cztery grupy
testów. O każdym z nich możemy
najpierw poczytać. Drugi odnośnik
pozwala na uruchomienie skryptu bez
udziału debuggera – dzięki temu mo-
żemy zaobserwować jego działanie
i wynik. Trzeci odnośnik to wykonanie
skryptu pod kontrolą Gubed . Po jego wy-
wołaniu należy przełączyć się na klienta.
Musimy bowiem zdecydować, czy chce-
my obserwować wykonanie krok po kro-
ku (przyciski Step ), czy też wolimy po-
zwolić skryptowi się wykonywać – przy-
cisk Run . W tym drugim przypadku za-
wsze możemy wcisnąć przycisk Pause .
Warto przeczytać wszystkie wprowadze-
nia do testów. Pouczają one między in-
nymi o ustawieniach dotyczących reago-
wania na pojawiające się błędy. Wykonu-
jąc po kolei testy, nauczymy się korzystać
z punktów kontrolnych ( breakpoint ), ob-
serwować wywołania funkcji (tu przy-
dadzą się przyciski Step Over , Step Into
i Step Out ), konfigurować Gubed tak, aby
zwracał uwagę na konkretne błędy oraz
będziemy mieli okazję śledzić wartości
zmiennych i ustawiać warunkowe punk-
ty kontrolne.
Analizowanie własnego skryptu
przebiega bardzo podobnie do tego,
co robiliśmy w czasie testów. Skrypt
należy umieścić gdzieś pod głównym
drzewem katalogu serwera WWW
(a więc w naszym przykładzie w pod-
katalogu katalogu /var/www/html/ ).
Następnie ścieżkę do niego podaje-
my na stronie http://localhost/Gubed/
StartSession.php , po czym wciskamy
przycisk Debug i przechodzimy do
okna klienta Gubed . Tutaj możemy do
woli analizować go krok po kroku, lub
też ustawić punkty kontrolne w wątpli-
wych miejscach i pozwolić mu się wy-
konywać.
W najnowszej wersji wprowadzono
funkcje Step over (wykonuje funkcję,
lecz nie śledzi jej wykonania), Step out
(śledzi wykonanie funkcji krok po kro-
ku) oraz Backtrace . Oprócz tego, po-
prawiono otwieranie skryptów z klien-
ta oraz dodano listę historii do Start-
Session .
http://freshmeat.net/projects/gubed
Rysunek 3. Gubed analizujący skrypt PHP
www.lpmagazine.org
45
332798367.008.png 332798367.009.png
 
 
332798367.010.png 332798367.011.png 332798367.012.png 332798367.013.png 332798367.014.png 332798367.015.png 332798367.016.png 332798367.017.png
Zgłoś jeśli naruszono regulamin