Your SlideShare is downloading. ×
0
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Xdebug – debugowanie i profilowanie aplikacji PHP

993

Published on

Maciej Kosiedowski - Polskapresse Internet - Xdebug – debugowanie i profilowanie aplikacji PHP

Maciej Kosiedowski - Polskapresse Internet - Xdebug – debugowanie i profilowanie aplikacji PHP

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
993
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
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 z użyciem Xdebug Maciej Kosiedowski m.kosiedowski@polskapresse.pl Gdynia, 19.03.2013
  • 2. „W C++ o błędach powiadamia kompilator, natomiast w PHP klient” © http://roflcopter.pl/6434
  • 3. Do czego służy Xdebug?● Xdebug to narzędzie pozwalające debugować PHP jak każdy inny język programowania:● Wykonywać kod krok po kroku● Sprawdzać chwilowe wartości zmiennych● Wstawiać punkty przerwania (break-point)● Podglądać stos wywołania● Dodawać czujki (watch)● Zmieniać wartości niektórych zmiennych w czasie wykonania● Profilować aplikację
  • 4. Konfiguracja serwera● Instalujemy Xdebuga ;)● Dodajemy do pliku ~/.htaccess linie: php_value xdebug.remote_host 127.0.0.1 php_value xdebug.remote_port 9000 php_value xdebug.remote_enable On php_value xdebug.remote_handler dbgp php_value xdebug.remote_autostart Off● Dodajemy do ~/.bashrc linię: export XDEBUG_CONFIG=remote_host=127.0.0.1 idekey=netbeans-xdebug● Podajemy adres IP swojego komputera, jeśli korzystamy z serwera deweloperskiego
  • 5. Konfiguracja własnego komputera● W momencie uruchamiania debugowania serwer będzie próbował połączyć się z naszym komputerem● Windows może blokować połączenia z serwera do IDE – w takim przypadku należy odpowiednio skonfigurować lub wyłączyć zaporę systemu Windows
  • 6. Instalacja dodatku do przeglądarki● Firefox: easy Xdebug – https://addons.mozilla.org/en-us/firefox/addon/easy-xdebug/ – Dostępny po zainstalowaniu na domyślnie ukrytym pasku dodatków● Chrome: Xdebug helper – https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc● Opera: Xdebug – https://addons.opera.com/pl/extensions/details/xdebug/● Każdy dodatek może wymagać ustawiania w konfiguracji klucza debugowania konkretnego dla używanego IDE: – netbeans-xdebug dla Netbeansa – ECLIPSE_DBGP dla Eclipse● Dodatek do Chrome domyślnie ustawiony jest pod Eclipse, pozostałe pod Netbeansa
  • 7. Konfiguracja IDE – Netbeans● Ustawienia debugowania: – Włączamy obliczanie zmiennych i chmurek
  • 8. Konfiguracja IDE - Netbeans● Ustawiamy projekt – Właściwości projektu → Run Configuration → Advanced – Wyłączamy otwieranie przeglądarki – Dodajemy mapowanie ścieżek jeśli działamy na serwerze deweloperskim
  • 9. Debugowanie – Netbeans● Uruchamiamy sesję debugowania w Netbeansie za pomocą przycisku● Uruchamiamy sesję debugowania w dodatku przeglądarki● Wstawiamy punkt przerwania● Odświeżamy stronę
  • 10. Debugowanie – pokaz na żywo
  • 11. Profilowanie - konfiguracja● Dodajemy do ~/.htaccess: php_value xdebug.profiler_enable 0 php_value xdebug.profiler_enable_trigger 1 php_value xdebug.profiler_output_dir /home/login/cachegrind/ php_value xdebug.profiler_output_name cachegrind.out.%p.%R● Tworzymy katalog /home/login/cachegrind i nadajemy mu prawa 777● W CLI exportujemy zmienną: export XDEBUG_CONFIG=”profiler_enable=1 profiler_output_dir=/home/login/cachegrind/”
  • 12. Profilowanie – analiza wyników● Narzędzia: – KCacheGrind – WinCacheGrind – Webgrind● Analiza najczęściej wykonywanych fragmentów kodu● Odnajdywanie najdłużej wykonujących się fragmentów kodu
  • 13. Profilowanie – pokaz na żywo
  • 14. Śledzenie zużycia pamięci● Potrzebne ustawione zmienne: xdebug.auto_trace 1 xdebug.trace_format 1● Przydatny skrypt: https://github.com/derickr/xdebug/raw/master/contrib/tracefile-analyser.php● Kłopotliwe do ustawienia z XDEBUG_CONFIG (nie działa). Przykładowe uruchomienie z CLI: php -d xdebug.auto_trace=1 -d xdebug.trace_format=1 shell.php akcja … php ~/tracefile-analyser.php /tmp/trace.2568677891.xt memory-own 20
  • 15. Śledzenie zużycia pamięci – pokaz
  • 16. Debugowanie w Eclipse● Jest możliwe● Największym problemem jest skonfigurowanie IDE● Google wie dużo na ten temat ;)
  • 17. Dziękuję i zapraszam do pytań

×