Je voudrais utiliser GDB pour passer le code C++ qui constitue l'extension Apache de php.so. Je veux voir ce que PHP fait pendant qu'il exécute une application PHP. De préférence j'utiliserais un IDE comme Netbeans ou Eclipse sur un système LAMP.Déboguer l'interpréteur PHP avec GDB
2
A
Répondre
5
- Vous voulez mettre la main sur une version de débogage de
mod_php
(avec des symboles) ou build your own (configure --enable-debug
) - Vous devez configurer votre Apache pour toujours garder exactement une instance de processus de travail vers le haut (qui sera l'instance vous debug), qui est défini
MinSpareServers
,MaxSpareServers
etStartServers
tous 1. assurez-vous également que tous les paramètres de temporisation sont généreusement mis - Use
gdb
ou any graphical interface togdb
(commeddd
ou Eclipse CDT) à attacher au seul et unique processus de travail Apache. Collez un point d'arrêt dans l'une des sources PHP etc. et continuez. - Pointez votre navigateur vers votre serveur Web et accédez à une page PHP. Votre point d'arrêt va se déclencher. Si vous voulez réveiller le débogueur à un moment donné de l'exécution de votre script PHP, générez un
SIGTRAP
à partir de PHP etgdb
vous obligera normalement.
Amusez-vous!
0
Peut-être que vous pourriez le faire sur Windows.
Cependant, votre meilleur pari est de le faire sur une boîte Unix. Vous devrez tout compiler avec le débogage activé. GDB aura besoin d'accéder à ces répertoires pour la source.
Ensuite, vous devrez exécuter apache et ensuite exécuter le processus.
Afin de vous donner le temps d'attacher pendant que vous tapez PHP/Apache avec un navigateur, ajoutez un appel de sommeil dans le script PHP. Si vous ps, vous verrez le processus dans l'état de veille. Ou vous pouvez simplement l'écrire dans un fichier dans tmp avant de le faire.