debugging php with xdebug inside of eclipse pdt 2.1
DESCRIPTION
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.TRANSCRIPT
Debugging PHPwith
XdebugInside of
Eclipse PDT 2.0
Bastian Federpapaya Software GmbH
IPC 200918.11.2009
Me, myself & I
Application developer PHP since 2001 @papaya since
01.2008 OpenSource addict
▹ fluentDom.org
▹ CaricaCacheGrind
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)
Provides ▹ profiling, tracing, code coverage, …
▹ PHP error reporting enhancements
Cross platform
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 Suhoshin-Patch 0.9.6.2 (cli)Copyright © 1997-2008 The PHP GroupZend 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
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
Obtaining Xdebug – precompiled Modules
ActiveState
▹ Komodo IDE Xdebug binaries (http://downloads.activestate.com/Komodo/releases/5.2.2/remotedebugging)
Configuration
Add to php.ini
[XDebug] ;; Only Zend OR (!) XDebug zend_extension="/usr/local/php/modules/xdebug.so"
[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
Configuration (II)
.htaccess – file settings
#-------------------------------# # xDebug section # #-------------------------------#
php_value xdebug.remote_enable 1 php_value xdebug.remote_handler bdgp php_value xdebug.remote_host 127.0.0.1 ;if debugging on remote server, put client IP here
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"
#-------------------------------# # xDebug section # #-------------------------------#
php_value xdebug.remote_enable 1 php_value xdebug.remote_handler 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"
Debugging techniques
Local debugging
Debugging techniques (II)
Remote debugging
Debugging techniques (III)
Multi-User Debugging
▹ Only possible using Remote Debugging
▹ DBGp Proxy necessary
Eclipse PDT
Eclipse PDT
Debug Perspective Debug Views Support for
▹ Breakpoints
▹ Conditional Breakpoints
▹ Live view / edit of variable content
▹ All debugging techniques
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
currently a Bug in PDT
Debug CLI scripts
Preconditions
▹ JIT configured
▹ Breakpoint set or 'Break at first line' active Debug cronjobs, PHPUnit tests, etc.
#> export XDEBUG_CONFIG=“idekey=ECLIPSE_DBGP“↵
#> php myScript.php ↵
#> export XDEBUG_CONFIG=““ ↵
Debugging made easy!
Firefox Add-on „Xdebug Helper“
DEMO
Troubleshooting
Monitor TCP/IP
▹ Withershark / ethereal
▹ TCP/IP Monitor
TCP/IP Monitor (remote debugging only)
Contact'n Slides
Slides▹ SlideShare: http://slideshare.com/lapistano
Contact▹ Blog: http://bastian-feder.de
▹ Email: [email protected]
Rate the talk @ http://joind.in/talk/view/1066
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 )
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