PHPEclipse + Xdebug + Firefox
There’s a short but great article about setting up PHPEclipse with Xdebug here: http://bogdan-albei.blogspot.com/2010/06/php-remote-debugging-with-xdebug-and.html
I really don’t want to forget this one!
Measuring memory usage with XDebug no longer possible (as of 2.0.0 RC4)
For those like me who remember being able to see memory usage in KCacheGrind using Xdebug, well… that’s not possible anymore.
Following the Xdebug’s changelog, the memory profiling has been removed (“Removed support for Memory profiling as that didn’t work properly.”) in 2.0.0 RC4 ([2007-05-17]). Although there’s been a bunch of comments on that feature loss (like here and on the bug tracking system), it doesn’t seem like there’s been any applied patch to fix it. This being said, you might try the proposed patch yourself, if you manage to extract the proposed files (which seem to have disappeared).
You could also using the “trace” feature of Xdebug, but that doesn’t help you see it visually in KCacheGrind.
Well, too sad for all of us who will have to play with memory_get_usage() and memory_get_peak_usage() manually again). Any hope for a fix soon?
Instalar Kcachegrind en Ubuntu 8.04
Kcachegrind es una aplicación que nos muestra gráficamente el consumo de tiempo y memoria que un proceso php (función, comando) provoca a un servidor Apache. Aqui una manera facil de instalarlo:
En un terminal ejecutar:
sudo apt-get install kcachegrind
sudo apt-get install php5-xdebug
Configurar estos parametros en el php.ini o en la carpeta /etc/apache2/site-available/sitename
php_admin_value xdebug.profiler_enable 1
php_admin_value xdebug.profiler_output_dir /tmp/kcache
Donde /tmp/kcache es la carpeta donde se guardarán los archivos generados, para luego poder verlos con en Aplicaciones->Programación->Kcachegrind
es necesario que la carpeta /tmp/kcache tenga permisos de escritura
sudo chmod 777 -R /tmp/kcache
Estoy suponiendo que tenemos ya instalado el apache2 y php5 correctamente instalados.
Improving PHP debug speed with XDebug 2.1
Thomas Koch published a nice comment on the XDebug mailing-list recently. It’s about using XDebug 2.1 in a different way to improve your debugging speed by allowing you to automatically open a code editor on XDebug reports.
For the sake of remembering this trick and making is more easily available, I’ve decided to publish it here:
source:
http://www.koch.ro/blog/index.php?/archives/77-Firefox,-VIM,-Xdebug-Jumping-to-the-error-line..html
The yet unreleased 2.1 version of XDebug has a nice new feature. The setting
xdebug.file_link_format
allows you, to provide a printf like format for a link under the filename of
an error message.
So here comes a quick walkthrough on how to open the file from the error
message in (G)VIM:
First we need to tell the browser, in my case firefox, that the link is no web
link, but should be threaten special. We do this with the introduction of the
new protocol “vim://”.
Put this setting in your PHP configuration:
CODE:
xdebug.file_link_format=vim://%f@%l
Now instruct firefox which program handles the protocol. Therefor you need to
open the about:config page and add two settings:
CODE:
network.protocol-handler.external.vim boolean true
network.protocol-handler.app.vim string
~/bin/ff_xdebug_gvim
The ff_xdebug_gvim file is a script that parses the link and calls gvim with
the appropriate parameters:
CODE:
#!/usr/bin/env php5
<?php
// cut the vim:// prefix from the input.
$input = substr( $argv[1], 6 );// split the filename from the line number, separted by ‘@’
// filenames could come in urlencoded
$delimiterpos = strrpos( $input, ‘@’ );
$file = urldecode( substr( $input, 0, $delimiterpos ) );
$line = ( string )( int )substr( $input, $delimiterpos – strlen( $input ) + 1 );// –remote-silent opens an already running gvim session or creates a new one.
// Replace gvim with
// vim if you like!
system( ‘gvim –remote-silent +’.escapeshellarg( $line ).’ ‘.escapeshellarg( $file ) );
That’s it. Thanks for your patience.
And as usually: Restart your webserver and chmod +x the script.
HOWTO Install xdebug for PHP5 on Ubuntu Feisty
This article is incomplete and was first written in April 2007
for the BeezNest technical website (http://glasnost.beeznest.org/articles/356).
Introduction
Xdebug is an extension for PHP which allows you to track errors and warning in a much more detailed way than what you could get by adding debug messages into your code.
However, installing it on a Linux system when there is no package might represent a little difficulty for the developer-only. This article is only meant to help save a few dozens of minutes from your time by providing the short list of what you need to do on an Ubuntu system to get it rolling.
Technical details
First, you don’t need Xdebug if you don’t have PHP. I assume you will be using PHP5, as it begins now to be the standard on all systems. If you don’t have PHP running, first refer to http://www.php.net to know how to install it.
On an Ubuntu system, we first check if a package is available for Xdebug
apt-cache search xdebug
… not much for PHP5 anyway. The idea is that we will then use the second affordable option: install it with PEAR. The PEAR package for PHP offers a command-line tool to download-and-install extensions from the PEAR or PECL websites (pear.php.net and pecl.php.net, respectively). PECL is a bit more restrictive than PEAR, which also means that – in general – you will get more reliable and structured packages from PECL, but you will get more packages in total from PEAR.
You can get information on Xdebug from the PECL website: http://pecl.php.net/package/Xdebug or you can get installation information from the xdebug website: http://xdebug.org/install.php
Anyway, we want to install the PEAR command-line tool:
sudo apt-get install php-pear
Then we can start using the pecl command-line script to look for the xdebug extension package
sudo pecl search xdebug
Now you can probably see that there are two versions available. The 1.3.2 and the 2.0.0 RC3 at the time of writing this article. The RC3 version is quite stable and offers considerable advantages, so you migh want to install this one. To do this, use the following command
sudo pecl install xdebug-beta
Now depending on what packaged are already installed on your Ubuntu system, you might end up with the following error message: Error: ‘phpize’ failed
This is due to the missing command-line application “phpize” (as you could get from other messages). To install this one:
sudo apt-get install php5-dev
Now you can start again
sudo pecl install xdebug-beta
At the end of the process, you get the following message
install ok: channel://pecl.php.net/xdebug-2.0.0RC3 You should add "extension=xdebug.so" to your php.ini
And that’s what we’re going to do. Edit ”/etc/php5/apache2/php.ini” and look for the section called ”Dynamic Extensions”. On the last line of this section, add the line
extension=xdebug.so
Now save the file, close it, and restart Apache
/etc/init.d/apache2 restart
That’s it!
Now you’ll see an additional display (which can be quite long) each time you generate a warning or error message. This message tells you exactly how the script processes through until it gets to the error. If you want to change the way it works now, you’ll have to find it by yourself on the xdebug website (http://xdebug.org/), because this is out of scope here. Have fun!