Xdebug en entreprise

May 10, 2009 19:08 · 263 words · 2 minute read Linux Mac OS PHP Xdebug

Xdebug est un excellent module pour PHP, mais il lui manque quelques fonctionnalités, comme la gestion des constantes, …, ainsi que la possibilité de pouvoir envoyer le debug où l’on veut. En effet difficile en entreprise d’avoir un seul ordinateur pouvant recevoir la requête …

Cette limitation est voulue par le développeur Derick Rethans malgré les demandes d’ajout de cette fonctionnalité dans le Bug Tracking celui ci refuse de le faire, à cause de la dangerosité possible de celle ci, en effet envoyer un debug a une personne non autorisée pourrait être catastrophique vu que le débuggueur envoit le code source du script …

Bref vous voulez faire sauter cette limitation vous êtes conscient de ce que vous faites et bien allons y !

Juste avant ce commentaire (ligne 751 de xdebug.c)

    /* Check if we have this special get variable that stops a debugging
    * request without executing any code */

Ajoutez

    /**************************************
    * client_ip
    */
    char *remote_host;
    remote_host = zend_ini_string(
    "xdebug.remote_host",
    sizeof("xdebug.remote_host"),
    0
    );
    if (strcmp(remote_host, "client_ip") == 0)
    {
    if
    (
    PG(http_globals)[TRACK_VARS_COOKIE]
    && zend_hash_find(
    PG(http_globals)[TRACK_VARS_SERVER]->value.ht,
    "REMOTE_ADDR",
    sizeof("REMOTE_ADDR"), (void **) &dummy
    ) == SUCCESS
    )
    {
    remote_host = xdstrdup(Z_STRVAL_PP(dummy));
    zend_alter_ini_entry(
    "xdebug.remote_host",
    strlen("xdebug.remote_host") + 1,
    remote_host, strlen(remote_host),
    PHP_INI_SYSTEM,
    PHP_INI_STAGE_ACTIVATE
    );
    }
    }
    // #client_ip

Désolé pour les indentations, mais sinon le code ne passe pas dans la largeur du blog.

Voilà il ne vous reste plus qu’à (re)compiler Xdebug et mettre à jour la configuration de celui ci, changez simplement la ligne de votre php.ini concernant la directive “xdebug.remote_host” en

xdebug.remote_host=client_ip

Vous voilà maintenant capable de débugguer à plusieurs au boulot !