Debugging PHP
                             with
                            Xdebug
                           Inside of
  ...
Me, myself & I
           Application developer
           PHP since 2001
           @papaya since
            01.2008
...
Who are you?
Derrick Rethans



„ Xdebug   ̶

 PHP developer's Swiss-Army Knife   “
What is this xDebug ev'ryone's talking about?
   Debugging for PHP by Derick Rethans
    (http://www.xdebug.org)
   Prov...
What's up for this talk?
   Installation
   Configuration
   Techniques
   Eclipse PDT
   Troubleshooting
Obtaining Xdebug - Linux

       #> sudo apt-get install php5-xdebug ↵

       #> php -v ↵

      PHP 5.2.-3ubuntu4.2 with...
Obtaining Xdebug - PECL

       #> sudo pecl install xdebug ↵


   Still configurations to be done
       ▹   Add:
      ...
Obtaining Xdebug – precompiled Modules




   ActiveState
       ▹   Komodo IDE Xdebug binaries
            (http://downl...
Configuration
   Add to php.ini

[XDebug]
;; Only Zend OR (!) XDebug
zend_extension="/usr/local/php/modules/xdebug.so"
xd...
Configuration (II)
     .htaccess – file settings

#-------------------------------#
# xDebug section            #
#-----...
Debugging techniques
   Local debugging
Debugging techniques (II)
   Remote debugging
Debugging techniques (III)
   Multi-User Debugging
       ▹   Only possible using Remote Debugging
       ▹   DBGp Proxy ...
Eclipse PDT
Eclipse PDT
   Debug Perspective
   Debug Views
   Support for
       ▹   Breakpoints
       ▹   Conditional Breakpoint...
Debugging perspective
Preferences – Basic setup
General settings
   Debug Port
   Multisession
   DBGp Proxy settings
Preferences – Basic setup
Preferences – PHP servers
   Remote debugging
   Mapping between IDE and Xdebug
Configuration for remote debugging
Start a remote debugging session
Start a local debugging
Configure „autostart“ options
   Accept JIT
       ▹  Localhost
        ▹ any
        ▹ Prompt
   Disable Multisession
 ...
Debug CLI scripts

       #> export XDEBUG_CONFIG=“idekey=ECLIPSE_DBGP“↵

       #> php myScript.php ↵

       #> export X...
Debugging made easy!
   Firefox Add-on
    „Xdebug Helper“
DEMO
Troubleshooting
   Monitor TCP/IP
       ▹   Withershark / ethereal
       ▹   TCP/IP Monitor
TCP/IP Monitor (remote debugging only)
Questions?




             Further questions? Ask me at:

             lapistano@php.net
Contact'n Slides
   Slides
       ▹   SlideShare: http://slideshare.com/lapistano
   Contact
       ▹   Blog: http://bas...
References
   xDebug
    (http://www.xdebug.org)

           ▹   Komodo precompilations
                  (http://downloa...
License
   This set of slides and the source code included
    in the download package is licensed under the

        Cre...
Upcoming SlideShare
Loading in...5
×

Debugging PHP with xDebug inside of Eclipse PDT 2.1

11,010

Published on

Integrated development plattforms (IDEs) like Eclipse or Netbeans do get more popular these days.
One cause might be the beautiful benefits a developer gains from using an IDE like a type history or a code completion.
This talk shall enable the attendee to get knowleadge about the possibilites of Eclipse PDT to use xDebug as internal debugger
It shows howto install xDebug and give a deep introduction about how to enable Eclipse PDT version 2 to communicate with xDebug.
Another topic of this talk would be the different debugging mechanism Eclipse PDT provides and how they work.

Published in: Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
11,010
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
140
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Debugging PHP with xDebug inside of Eclipse PDT 2.1

  1. 1. Debugging PHP with Xdebug Inside of Eclipse PDT 2.0 Bastian Feder IPC 2009 papaya Software GmbH 18.11.2009
  2. 2. Me, myself & I  Application developer  PHP since 2001  @papaya since 01.2008  OpenSource addict ▹ fluentDom.org ▹ CaricaCacheGrind
  3. 3. Who are you?
  4. 4. Derrick Rethans „ Xdebug ̶ PHP developer's Swiss-Army Knife “
  5. 5. What is this xDebug ev'ryone's talking about?  Debugging for PHP by Derick Rethans (http://www.xdebug.org)  Provides ▹ profiling, tracing, code coverage, … ▹ PHP error reporting enhancements  Cross platform
  6. 6. What's up for this talk?  Installation  Configuration  Techniques  Eclipse PDT  Troubleshooting
  7. 7. Obtaining Xdebug - Linux #> sudo apt-get install php5-xdebug ↵ #> php -v ↵ PHP 5.2.-3ubuntu4.2 with Suhoshin-Patch 0.9.6.2 (cli) Copyright © 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright © 2002-2008 Zend Technologies with Xdebug v2.0.5, Copyright © 2002-2008, by Derick Rethans  Easiest way on Linux systems  Basic configuration
  8. 8. Obtaining Xdebug - PECL #> sudo pecl install xdebug ↵  Still configurations to be done ▹ Add: zend_extension=“/usr/local/php/modules/xdebug.so to php.ini  Ignore notes about to add „extension=xdebug.so“ → causes problems
  9. 9. Obtaining Xdebug – precompiled Modules  ActiveState ▹ Komodo IDE Xdebug binaries (http://downloads.activestate.com/Komodo/releases/5.2.2/remotedebugging)
  10. 10. Configuration  Add to php.ini [XDebug] ;; Only Zend OR (!) XDebug zend_extension="/usr/local/php/modules/xdebug.so" xdebug.remote_enable=true xdebug.remote_host=127.0.0.1 ;if debugging on remote server, put client IP here xdebug.remote_port=9000 xdebug.remote_handler=dbgp ;; profiler xdebug.profiler_enable=Off xdebug.profiler_enable_trigger=On xdebug.profiler_output_dir=/data_lokal/temp/xdebug/profiling
  11. 11. Configuration (II)  .htaccess – file settings #-------------------------------# # xDebug section # #-------------------------------# php_value xdebug.remote_enable 1 php_value xdebug.remote_handler bdgp dbgp php_value xdebug.remote_host 127.0.0.1 ;if debugging on remote server, put client IP here php_value xdebug.allowed_clients <client IP address> php_value xdebug.remote_port 9000 # profiler php_value xdebug.profiler_enable_trigger 1 php_value xdebug.profiler_enable 0 php_value xdebug.profiler_output_dir "/data_lokal/temp/xdebug/profiling"
  12. 12. Debugging techniques  Local debugging
  13. 13. Debugging techniques (II)  Remote debugging
  14. 14. Debugging techniques (III)  Multi-User Debugging ▹ Only possible using Remote Debugging ▹ DBGp Proxy necessary
  15. 15. Eclipse PDT
  16. 16. Eclipse PDT  Debug Perspective  Debug Views  Support for ▹ Breakpoints ▹ Conditional Breakpoints ▹ Live view / edit of variable content ▹ All debugging techniques
  17. 17. Debugging perspective
  18. 18. Preferences – Basic setup
  19. 19. General settings  Debug Port  Multisession  DBGp Proxy settings
  20. 20. Preferences – Basic setup
  21. 21. Preferences – PHP servers  Remote debugging  Mapping between IDE and Xdebug
  22. 22. Configuration for remote debugging
  23. 23. Start a remote debugging session
  24. 24. Start a local debugging
  25. 25. Configure „autostart“ options  Accept JIT ▹ Localhost ▹ any ▹ Prompt  Disable Multisession currently a Bug in PDT
  26. 26. Debug CLI scripts #> export XDEBUG_CONFIG=“idekey=ECLIPSE_DBGP“↵ #> php myScript.php ↵ #> export XDEBUG_CONFIG=““ ↵  Preconditions ▹JIT configured ▹ Breakpoint set or 'Break at first line' active  Debug cronjobs, PHPUnit tests, etc.
  27. 27. Debugging made easy!  Firefox Add-on „Xdebug Helper“
  28. 28. DEMO
  29. 29. Troubleshooting  Monitor TCP/IP ▹ Withershark / ethereal ▹ TCP/IP Monitor
  30. 30. TCP/IP Monitor (remote debugging only)
  31. 31. Questions? Further questions? Ask me at: lapistano@php.net
  32. 32. Contact'n Slides  Slides ▹ SlideShare: http://slideshare.com/lapistano  Contact ▹ Blog: http://bastian-feder.de ▹ Email: php@bastian-feder.de  Rate the talk @ http://joind.in/talk/view/1066
  33. 33. References  xDebug (http://www.xdebug.org) ▹ Komodo precompilations (http://downloads.activestate.com/Komodo/releases/5.2.2/remotedebugging) ▹ DBGp Proxy (http://derickrethans.nl/debugging_with_multiple_users.php)  Eclipse PDT (http://www.eclipse.org/pdt)  Xdebug-Helper (https://addons.mozilla.org/en-US/firefox/addon/3960 )
  34. 34. License  This set of slides and the source code included in the download package is licensed under the Creative Commons Attribution- Noncommercial-Share Alike 2.0 Generic License http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×