2010-04-11 34 views
2

我想使用GDB来检查构成php.so Apache扩展的C++代码。我想知道PHP在运行PHP应用程序时正在做什么。最好我会在LAMP系统上使用像Netbeans或Eclipse这样的IDE。使用GDB调试PHP解释器

回答

5
  1. 你想要得到的mod_php调试版本你的手(用符号)或build your ownconfigure --enable-debug
  2. 您应该配置你的Apache始终保持只有一个工作进程实例了(这将是该实例您调试),也就是设置MinSpareServersMaxSpareServersStartServers全部为1同时确保任何超时参数慷慨设置
  3. Use gdbany graphical interface to gdb(如dddEclipse CDT)附加到唯一的Apache工作进程。在其中一个PHP源代码中插入一个断点并继续。
  4. 将浏览器指向您的网络服务器并访问PHP页面。你的断点会触发。如果您想要在执行PHP脚本的特定时刻唤醒调试器,请从PHP生成SIGTRAPgdb通常会对您产生影响。

玩得开心!

0

也许你可以在windows上做到这一点。

但是,最好的选择是在Unix机器上执行此操作。您必须在启用调试的情况下编译所有内容。 GDB将需要访问这些目录的源代码。

然后,你将不得不运行apache,然后运行该过程。

为了让你自己有时间在浏览PHP/Apache的同时连接浏览器,请在PHP脚本中添加一个睡眠呼叫。如果你ps,你会看到进程处于睡眠状态。或者你可以让它在进行睡眠之前将其进程ID写入tmp中的一个文件中。