mars
2009
Je viens de me compiler un PHP tout neuf, et j’ai activé le mode debug avec le flag –enable-debug.
Ce mode est particulièrement intéréssant lorsqu’il s’agit de faire des analyses à chaud du processus PHP.
Un outils (dont je ne me sépare plus) comme Vallgrind permet d’analyser les facettes d’un processus en profondeur. Cependant, Vallgrind n’est pas magicien. Il repère les appels bas niveau, mais dès que le niveau monte un peu, la compilation a éffacé pas mal d’indices, et on se retrouve avec des trous noirs.
Activer le mode debug (la plupart des programmes en disposent, c’est aussi le cas d’Apache) permet de dire au compilateur de laisser certains indices dans le binaire final, servant au debbugage.
Quoiqu’il en soit, attention au mode debug.
Par exemple, j’ai constaté à mon insu que l’extension ZendDebugger n’est pas compatible avec un PHP compilé en debug. Comme on n’a pas la source de ce debuggeur, on est coincé …
Concernant xdebug, il est compatible (à condition de le compiler soi-même ce que fait la commande « pecl install »), MAIS vous devez charger alors l’extension avec zend_extension_debug= et non plus zend_extension=.
Ceci est indiqué dans le manuel de xdebug.
Aussi, des extensions très proches du ZendEngine comme APC doivent être compilées spécialement avec un PHP dont le mode debug est activé.
Conclusion : si vous travaillez avec un PHP dont le mode debug est activé, prennez soin de vos extensions. Certaines devront être recompilées (pas toutes) et d’autres devront être chargées de manière spéciale. Une analyse des logs PHP pointe le problème, mais pas tout le temps. Par exemple pour ZendDebugger, tous les logs sont muets…
2 Commentaires + Ajouter un commentaire
Commentaires récents
Archives
- novembre 2010
- août 2010
- juillet 2010
- juin 2010
- mai 2010
- avril 2010
- mars 2010
- février 2010
- janvier 2010
- décembre 2009
- novembre 2009
- octobre 2009
- septembre 2009
- août 2009
- juillet 2009
- juin 2009
- mai 2009
- avril 2009
- mars 2009
- février 2009
- janvier 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- août 2008
- juillet 2008
- juin 2008
- mai 2008
- avril 2008
- mars 2008
- février 2008
- janvier 2008
- décembre 2007
- novembre 2007
- octobre 2007
- septembre 2007
- août 2007
- juillet 2007
- juin 2007
- mai 2007
- avril 2007
- mars 2007
- février 2007
Comme indiqué ce mode apporte des possibilités avancées de debugguage avec des outils comme Valgrind ou strace.
Il fait apparaitre un plus grand nombre d’instructions, avec leur code source
Qu’apporte ce mode debug, concretement ?