• Like
  • Save

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Debugowanie skryptow php za pomoca xdebug

  • 6,106 views
Uploaded on

Debugowanie skryptow php za pomoca xdebug

Debugowanie skryptow php za pomoca xdebug

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,106
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Debugowanie skryptów PHP za pomocą Xdebug Micha Pipa
  • 2. Plan wystąpienia   Wprowadzenie   Debugowanie   Kolorowy var_dump()   Śledzenie wywo ań funkcji   Profilowanie
  • 3. Wprowadzenie Co to jest Xdebug? Xdebug jest rozszerzeniem PHP stworzonym przez Dericka Rethansa.
  • 4. Wprowadzenie Możliwości   Dodatkowe informacje o b ędach   Kolorowanie wyjścia var_dump()   Śledzenie stosu   Interaktywne debugowanie   Profilowanie   Śledzenie wywo ań funkcji   Analiza 'code coverage'
  • 5. Wprowadzenie Instalacja Instalacja w Debian/Ubuntu: # apt-get install php5-xdebug
  • 6. Wprowadzenie Konfiguracja /etc/php5/conf.d/xdebug.ini zend_extension=/usr/lib/php5/20060613+lfs/xdebug.so
  • 7. Debugowanie Wprowadzenie PHP z rozszerzeniem Xdebug ączy się z klientem (NetBeans).
  • 8. Debugowanie Konfiguracja Parametry zdalnego debugowania można ustawiać zarówno w php.ini (globalnie), jak i w .htaccess (dla danego katalogu).
  • 9. Debugowanie Konfiguracja Najważniejsze parametry:   xdebug.remote_enable   xdebug.remote_host   xdebug.remote_port   xdebug.idekey
  • 10. Debugowanie Konfiguracja W konfiguracji Xdebug musimy podać adres klienta (xdebug.remote_host). Oznacza to, że Xdebug musi wiedzieć do jakiego klienta ma się pod ączyć.
  • 11. Debugowanie Konfiguracja Konieczność podania adresu klienta jest problemem w następujących przypadkach:   Więcej niż jeden programista chce debugować tę samą kopię skryptu.   Klient nie ma publicznego adresu IP (NAT).
  • 12. Debugowanie Konfiguracja Rozwiązanie:   Przekierowanie portów (dotyczy NAT i jest uciążliwe).   Zastosowanie DBGp proxy.
  • 13. Debugowanie DBGp proxy Klient rejestruje się w proxy poleceniem 'proxyinit' i podaje parametr idekey. Dzięki temu proxy może skojarzyć idekey z adresem i portem klienta oraz później przekierować do niego odpowiednie po ączenia.
  • 14. Debugowanie DBGp proxy Przyk adowa sesja z udzia em pydbgpproxy: $ ./pydbgpproxy -i 10.254.254.254:9001 -d 10.254.254.254:9000 INFO: dbgp.proxy: starting proxy listeners. appid: 8431 INFO: dbgp.proxy: dbgp listener on 10.254.254.254:9000 INFO: dbgp.proxy: IDE listener on 10.254.254.254:9001 INFO: dbgp.proxy: Server:onConnect ('10.254.254.20', 40112) [proxyinit -p 9000 -k michal.pipa -m 0] INFO: dbgp.proxy: connection from 10.254.254.20:42010 [<__main__.sessionProxy instance at 0x874410c>] INFO: dbgp.proxy: Server:onConnect ('10.254.254.20', 40117) [proxystop -k michal.pipa]
  • 15. Debugowanie Konfiguracja klienta (NetBeans)
  • 16. Debugowanie Konfiguracja klienta (NetBeans)
  • 17. Debugowanie Konfiguracja klienta (NetBeans)
  • 18. Debugowanie NetBeans Śledzenie zmiennych:
  • 19. Debugowanie NetBeans Podgląd i edycja wszystkich zmiennych:
  • 20. Debugowanie NetBeans Podgląd stosu:
  • 21. Debugowanie NetBeans Pu apki:
  • 22. Debugowanie NetBeans Pu apki:
  • 23. Kolorowy var_dump() Przyk ad Bez Xdebug:
  • 24. Kolorowy var_dump() Przyk ad Z Xdebug:
  • 25. Kolorowy var_dump() Konfiguracja   xdebug.overload_var_dump   xdebug.var_display_max_depth   xdebug.var_display_max_children   xdebug.var_display_max_data
  • 26. Śledzenie wywo ań funkcji Wprowadzenie Śledzenie wywo ań funkcji zapisuje w czytelnym dla cz owieka formacie informacje o:   Wywo anych funkcjach   Czasie wykonania funkcji   Rozmiar użytej pamięci   Parametry przekazane do funkcji   Wartości zwracane przez funkcję
  • 27. Śledzenie wywo ań funkcji Konfiguracja   xdebug.auto_trace   xdebug.collect_params   xdebug.collect_return   xdebug.show_mem_delta
  • 28. Profilowanie Wprowadzenie Profilowanie jest podobne do śledzenia wywo ań funkcji. Wynik jest zapisywany w postaci czytelnej dla programów, które s użą do analizy tych danych.
  • 29. Profilowanie Konfiguracja W ączenie profilowania: xdebug.profiler_enable Po w ączeniu pliku profilu są zapisywane w katalogu /tmp (xdebug.profiler_output_dir).
  • 30. Profilowanie KCachegrind
  • 31. Profilowanie Webgrind
  • 32. Dziękuję za uwagę!