Debugowanie skryptow php za pomoca xdebug

6,605
-1

Published on

Debugowanie skryptow php za pomoca xdebug

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,605
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Debugowanie skryptow php za pomoca xdebug

  1. 1. Debugowanie skryptów PHP za pomocą Xdebug Michał Pipa
  2. 2. Plan wystąpienia   Wprowadzenie   Debugowanie   Kolorowy var_dump()   Śledzenie wywołań funkcji   Profilowanie
  3. 3. Wprowadzenie Co to jest Xdebug? Xdebug jest rozszerzeniem PHP stworzonym przez Dericka Rethansa.
  4. 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. 5. Wprowadzenie Instalacja Instalacja w Debian/Ubuntu: # apt-get install php5-xdebug
  6. 6. Wprowadzenie Konfiguracja /etc/php5/conf.d/xdebug.ini zend_extension=/usr/lib/php5/20060613+lfs/xdebug.so
  7. 7. Debugowanie Wprowadzenie PHP z rozszerzeniem Xdebug łączy się z klientem (NetBeans).
  8. 8. Debugowanie Konfiguracja Parametry zdalnego debugowania można ustawiać zarówno w php.ini (globalnie), jak i w .htaccess (dla danego katalogu).
  9. 9. Debugowanie Konfiguracja Najważniejsze parametry:   xdebug.remote_enable   xdebug.remote_host   xdebug.remote_port   xdebug.idekey
  10. 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. 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. 12. Debugowanie Konfiguracja Rozwiązanie:   Przekierowanie portów (dotyczy NAT i jest uciążliwe).   Zastosowanie DBGp proxy.
  13. 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. 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. 15. Debugowanie Konfiguracja klienta (NetBeans)
  16. 16. Debugowanie Konfiguracja klienta (NetBeans)
  17. 17. Debugowanie Konfiguracja klienta (NetBeans)
  18. 18. Debugowanie NetBeans Śledzenie zmiennych:
  19. 19. Debugowanie NetBeans Podgląd i edycja wszystkich zmiennych:
  20. 20. Debugowanie NetBeans Podgląd stosu:
  21. 21. Debugowanie NetBeans Pułapki:
  22. 22. Debugowanie NetBeans Pułapki:
  23. 23. Kolorowy var_dump() Przykład Bez Xdebug:
  24. 24. Kolorowy var_dump() Przykład Z Xdebug:
  25. 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. 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. 27. Śledzenie wywołań funkcji Konfiguracja   xdebug.auto_trace   xdebug.collect_params   xdebug.collect_return   xdebug.show_mem_delta
  28. 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. 29. Profilowanie Konfiguracja Włączenie profilowania: xdebug.profiler_enable Po włączeniu pliku profilu są zapisywane w katalogu /tmp (xdebug.profiler_output_dir).
  30. 30. Profilowanie KCachegrind
  31. 31. Profilowanie Webgrind
  32. 32. Dziękuję za uwagę!

×