• Home
  • Nous contacter

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab
Outils

Debuguer un code php sous eclipse avec xdebug

Qu’est ce que xdebug ?

xdebug est une extension php écrite en c.

Elle permet, entre autre :

  • d’afficher la pile d’exécution lors d’une fatal error.
  • d’afficher des informations de profiling (mesure des temps d’exécution dans les fonctions)
  • d’afficher la couverture de code, c’est à dire la proportion de code utilisé lors d’une exécution. Cela est très utile pour voir si nos tests unitaires couvrent la totalité du code.

si vous n’avez pas xdebug d’installé, reportez vous ici

Configuration de xdebug sous eclipse

Nous allons maintenant utiliser xdebug pour déboguer notre programme php, nous voulons exécuter notre programme, à partir du navigateur web, et en mode pas à pas.

Sous eclipse, nous allons procéder comme suit :

Dirigez vous dans le menu Window -> Préferences, dans le menu PHP -> PHP Servers
Créez-vous un nouveau serveur, dans les propriétés :

  • le Base Url doit corresponde à l’url racine de votre site, par exemple http://localhost/monsite
  • le Local Web Root correspond à la racine de votre projet.

eclipse-php-server

Cliquez droit sur votre projet eclipse,
dans le menu, allez dans Debug as, puis Debug configuration, on se retrouve avec l’image suivante :

debug-configuration

Il va falloir nous créer une configuration pour ce projet, pour cela, cliquez droit sur PHP Web Application, et faites New.

  • Selectionnez votre PHP Server créé auparavant (qui correspond à votre projet eclipse)
  • Selectionnez, dans File, le chemin relatif à votre workspace eclipse jusqu’à votre fichier php executé.
  • Ecrivez ensuite votre Url, la première partie correspond à l’url du server, la seconde est l’URI qui va être lancée dans le navigateur pour déboguer notre programme.

Faites un Apply, puis un Run lancera l’url dans votre navigateur par défaut.

Déboguer un code php

Nous avons maintenant configuré notre projet eclipse pour xdebug.

Plaçons un breakpoint sur la première ligne de notre programme: pour ceci, dans votre fichier php, cliquez droit sur le bord de la fenêtre contenant votre code (là ou se trouvent les numéros de ligne) et faites un ‘Toggle Breakpoints’.
Maintenant, à chaque fois que votre programme rencontrera cette ligne, il se mettra en pause et nous pourrons alors déboguer.

On peut alors cliquer droit sur notre index.php (fichier indiqué dans le Debug Configuration) et faire un Debug as -> New_Configuration. Si tout va bien, on arrive sur la perspective de Debug :

debug-perspective

On observe que notre programme s’est effectivement arrête sur notre ligne ou nous avons placé notre beakpoint.

Dans cette perspective de Debug, on note en haut à gauche la pile d’exécution, à noter que l’on peut cliquer sur nimportequel élément de la pile pour ouvrir le fichier et la ligne correspondante.

en haut à gauche se trouve toutes les variables globales et déclarées dans l’endroit ou nous nous sommes arreté.

Il est maintenant possible de faire du pas à pas, quelques raccourcis (disponible dans la toolbar d’eclipse ) :

eclipse-debug-toolbar

F6 permet de continuer l’exécution, en allant à la ligne suivante, observez alors les variables changer de valeur dynamiquement dans la vue Variables

F5 permet de continuer l’exécution, la différence avec F6 est que, lorsque nous rencontrons des appels de fonctions, nous allons directement à intérieur de celle-ci (nous empilons un appel de fonction)

F7 permet de dépiler de la fonction, le programme continue alors jusqu’à rencontrer le retour de la fonction avant de se remettre en pause.

F8 permet de continuer l’exécution, si vous avez défini d’autres breakpoints, le programme s’arettera de nouveau sur ceux-ci.

13/03/2015 25 MIN READ BY: Arnaud HOURS 0 COMMENT
SHARE
LIRE LA SUITE

Arnaud HOURS

Apple: créer et comprendre le provisionning profile de vos applications

Drupal Fuse, démarrez vos projets Drupal 7 à la vitesse d'une fusée

VOUS POURRIEZ AIMER

Outils Les doublures de test dans PHPUnit

Outils Créer un package pour Composer avec Github et Packagist – Partie 1

Outils Calculez la bande passante disponible en javascript

DevOps Outils GitLab [1/6] : Git clone

Outils Console2, un terminal pour les gouverner tous!

Outils Les erreurs de débutant en programmation

A propos d’Adfab

Nous sommes un studio de production digitales et d’innovation digitales au service des agences et des annonceurs
Nous recherchons le scintillement dans les regards et le plaisir de réalisations sur-performantes
Nous sommes techno-agnostiques
Nous sommes Adfab

Le blog d'Adfab
Copyright © 2018 Adfab Connect