Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Debugowanie skryptow
cagrET
post 3.04.2003, 16:42:56
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Opole

Ostrzeżenie: (0%)
-----


w jaki sposob debugujecie skrypty ?

w php znam 2 sposoby:
1. Edytor z debugerem
2. Skrypt php z wlasna obsluga bledow

z pierwszym mam problem
mam edytor php Coder Pro -> http://phpide.de ->
debugger -> http://dd.cron.ru

najnowsza wersja mi nie dziala i mam komunikat zeby zgrac 2.04 - ale 2.04 tez mi nie chodzi - nie moze zaladowac bibloiteki

na PHPEdit dziala mi debugger -> http://phpedit.net
ale za to phpedit czesto mi sie wiesza i nie dziala wiele rzeczy (np undo) mimo iz zgralem stable 6.0

PHPEd - nie testowalem jeszcze

Zend Studio - za wolne na moim kompie :-)

wiecej dobrych edytorow z mozlowoscia debugowania chyba nie ma ?

2. drugi sposob za pomoca skryptow
napisalem niedawno taki 1
na razie tylko pare najpotrzebineszych rzeczy zaimplementowalem

http://scg.milc.com.pl/cagret/debug/lib.mgcError.php

a tutaj przyklad:

http://scg.milc.com.pl/cagret/debug/test.php

- wypisuje blad
- kod gdzie byl blad
- wartosci zmiennych z tego kawalka kodu (mozliwosc ograniczenia zaglebienia petli)
- limit bledow

mam zamiar dodac jeszcze pare funkcji zeby zabezpieczyc sie pzred "hackingiem"
- mozliowsc zapisywania bledow do pliku
- lub na maila wyslanie
- Ip osoby, data etc
- ignorowanie bledow (nie wypisze uzytkownikowi)

stosujecie takie zabezpieczenia na swoich stronach ?
(zlapie sie lamerkow ktorzy probuja podstawiac pod zmienne jakies wartosci i wylapywac bledy w kodzie)


--------------------
code.gosu.pl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
dragossani
post 10.04.2003, 14:42:38
Post #2





Grupa: Przyjaciele php.pl
Postów: 398
Pomógł: 0
Dołączył: --
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Jeśli chodzi o wymienione przez Ciebie sposoby debugowania skryptów, to ten drugi jest zdecydowanie bardziej wszechstronny.

Przejrzałem na razie pobieżnie tą Twoją bibliotekę i muszę przyznać, że jestem pod wrażeniem. Kawał dobrej roboty. Musiał bym się przyjrzeć jak to wypada w porównaniu do klas PEAR i PEAR_Error. A swoją drogą, ciekawe że zdecydowałeś się pisać klasę od zera, a nie rozbudowywać PEAR_Error.

Jeśli chodzi o zapisywanie błędów do plików, albo wysyłkę na maila, to proponuję wydzielić w ogóle tablicę z uchwytami 'standardowych wyjść' klasy mgcError. Można by wtedy dopisywać kolejne metody eksportu danych (ekran, płaski plik logów, plik logów w formie XML, zapis do bazy, wysyłka mailem itd.) przeciążając klasę i tylko rejestrować w tablicy te uchwyty, które mają zostać użyte.


--------------------
cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
Go to the top of the page
+Quote Post
kurtz
post 13.04.2003, 01:54:03
Post #3





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

Ostrzeżenie: (0%)
-----


Cytat
w jaki sposob debugujecie skrypty ?

w php znam 2 sposoby:
1. Edytor z debugerem
2. Skrypt php z wlasna obsluga bledow
jest jeszcze trzeci znany mi sposob:
3. dupczenie

stosowanie: w krytycznym dla nas fragmencie kodu piszemy
Kod
echo "dupa";


zadzwijaco skuteczne ;)


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
dragossani
post 14.04.2003, 14:16:00
Post #4





Grupa: Przyjaciele php.pl
Postów: 398
Pomógł: 0
Dołączył: --
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Chyba że nie wiemy co okaże się krytycznym fragmentem kodu. Sami nie wychwycimy wszystkich błędów. System obsługi błędów z logowaniem do plików pozwala wykryć błędy które wystąpiły podczas używania naszych skryptów przez kogoś innego.


--------------------
cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
Go to the top of the page
+Quote Post
radziel
post 25.04.2003, 19:13:49
Post #5





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 25.04.2003
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Ja także jestem pod wrażeniem twojego skryptu cagrET... Mimo że ja także piszę własną, to twoja w porównaniu z moją jest duuuużo lepsza winksmiley.jpg

Ja poprostu wyłaczam pokazywanie blędów na WWW, a wszystkie błędy ślę sobie na mejla stare - dobre - niezwodne winksmiley.jpg


--------------------
r.
Go to the top of the page
+Quote Post
cagrET
post 28.04.2003, 00:08:44
Post #6





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Opole

Ostrzeżenie: (0%)
-----


jak chcecie wiecej gosu kodu to tutaj mozna zlookac ;-)

http://www.php-editors.com/results_b1.php

a tutaj moj ;-)

http://www.php-editors.com/hlight_script.p...php?show=cagret


--------------------
code.gosu.pl
Go to the top of the page
+Quote Post
Nalfein][WR
post 1.05.2003, 19:17:05
Post #7





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 22.04.2003
Skąd: Żory / K-ce

Ostrzeżenie: (0%)
-----


Cytat
Chyba że nie wiemy co okaże się krytycznym fragmentem kodu. Sami nie wychwycimy wszystkich błędów. System obsługi błędów z logowaniem do plików pozwala wykryć błędy które wystąpiły podczas używania naszych skryptów przez kogoś innego.


Sorki, że się wtrącam, ale słyszeliście o metodologii eXtreme Programming? W necie krązy wiele materiałów o tym podejściu do kodowania - poczytajcie artykuły na extremeprogramming.com, http://www.phppatterns.com/index.php/artic...cleview/33/1/2/ (dość prymitywny przykład, ale zawsze w php) itp.

Poprzez tworzenie skryptów testujących serwis możecie symulować akcje, które użytkownik normalnie wykonuje przez przeglądarkę. Przy dobrze zaprojektowanym serwisie nie powinno to być takie trudne - trzeba po prostu odpowiednio uogólniać interfejs, aby w razie czego umożliwić użycie tzw. Mock Objects, czyli obiektów, które imitują środowisko w postaci bazy danych (np. na zapytanie zwracają cały czas te same dane, które po przetworzeniu przez obiekt testowany skrypt testujący porównuje z oczekiwanymi), kontrolerów, które zamiast domyślnie przekazywanych danych z GET i POST przekażą dane wzorcowe itp. Dla 'niewtajemniczonych' zapewne brzmi to zabójczo, ale naprawdę sprawdza się! smile.gif))

Podejście jest trochę inne - przeważnie testy tworzy się przed napisaniem skryptu, który będziemy testować, co może wydawać się szalone, ale jest doskonałym pomysłem, gdyż zmusza do myślenia obiektowego i pozwala na lepsze zaprojektowanie aplikacji i jej warstw (dane [Model] - logika [Controller] - prezentacja [View]) poprzez jasne określenie interfejsu. Może się to wydawać trudne i bezsensowne, ale daje sporo frajdy, gdyż po prostu ukazuje nam do czego zmierzamy i wyznacza granice, których mamy się trzymać.

Jeśli do tego dodamy porządną obsługę błędów, która będzie w końcu dostępna wraz z PHP5 to (imho) takie skrypciki bazujące na pojedynczych handlerach po prostu tracą sens ;P
Go to the top of the page
+Quote Post
Wankster
post 6.05.2003, 19:39:47
Post #8





Grupa: Zarejestrowani
Postów: 208
Pomógł: 0
Dołączył: 19.04.2003

Ostrzeżenie: (0%)
-----


cagrET: Odnośnie Twojej klasy... jakiej wersji php ona wymaga? Ja mam 4.1.2 i załączając klasę wypisuje mnie, że nie może jej ustawić (Couldnt set error handler) ;(
Go to the top of the page
+Quote Post
Jabol
post 7.05.2003, 08:57:54
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


polecam magume. Ma wszystkie przydatne opcje (class browser, generowanie opisów, functions browser) plus dużo więcej i na dodatek ma debugowanie skryptów.
Go to the top of the page
+Quote Post
cagrET
post 10.05.2003, 23:15:37
Post #10





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Opole

Ostrzeżenie: (0%)
-----


w domu 4.3.1

ale ten link jest do skryptu na servie na ktorym jest wersja 4.1.2
wiec nie wiem co moze byc problemem sad.gif


--------------------
code.gosu.pl
Go to the top of the page
+Quote Post
cagrET
post 22.04.2004, 06:12:31
Post #11





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Opole

Ostrzeżenie: (0%)
-----


Teraz używam czegoś takiego: http://prdownloads.sourceforge.net/mygosuc...er.zip?download

Przykład wyświetlania błędu: http://www.gosu.pl/demo/ErrorHandler/example1.html
Przykład wyświetlania źródła pliku w którym błąd wystąpił: http://www.gosu.pl/demo/ErrorHandler/example2.html

Wyświetlanie błędu: debug_backtrace(), plik / linia , funkcja / argumenty, źródło pliku


--------------------
code.gosu.pl
Go to the top of the page
+Quote Post
hawk
post 22.04.2004, 10:19:56
Post #12





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

Ostrzeżenie: (0%)
-----


Hint: numerowanie linii ci się rozjeżdża, gdy jakaś linia kodu jest zbyt długa i przeglądarka zawija wiersze.
Dobre rozwiązanie tego problemu opublikowałem na forum php-editors.com.
Go to the top of the page
+Quote Post
mat3u
post 22.04.2004, 19:40:51
Post #13





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.12.2003
Skąd: OHIO

Ostrzeżenie: (0%)
-----


Ja używame php5 i tam jest wbudowana dobra obsługa błędów smile.gif exclamation.gif! W moim skrypcie debugowanie ogranicza się do zapisania wyniku do logu i po wszystkim, w logu umieszczam wszelkie dane potrzebne do rozwiązania problemu.

PS. Podoba mi się ta klasa do obsługi błędów , ale na php4 smile.gif.

Ale wracam. Co sądzicie o rozwiązaniu zastosowanym w php5, wg mnie to znacznie ułatwia wyszukiwanie i obsługe wyjątków w skrypcie.


--------------------
Warsztat : Apache 2.0 | php 5.1.2 | SQLite | MySQL | Python 2.4.2
Narzędzia : emEditor 5.00 | Dreamweaver MX 8 | Adobe Creative Suite | VI
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:36