使用GDB调试PHP解释器

时间:2010-04-11 04:49:09

标签: php eclipse debugging gdb lamp

我想使用GDB来完成构成php.so Apache扩展的C ++代码。我想看看PHP在运行PHP应用程序时正在做什么。我最好在LAMP系统上使用像Netbeans或Eclipse这样的IDE。

2 个答案:

答案 0 :(得分:5)

  1. 您希望获得mod_php(带符号)或build your ownconfigure --enable-debug
  2. 的调试版本
  3. 您应该将Apache配置为始终保持一个工作流程实例(这将是您调试的实例),即设置MinSpareServersMaxSpareServersStartServers全部1.还要确保设置任何超时参数
  4. Use gdbany graphical interface to gdb(例如dddEclipse CDT)附加到唯一的Apache工作进程。在其中一个PHP源代码中粘贴断点并继续。
  5. 将浏览器指向您的网络服务器并访问PHP页面。您的断点将触发。如果要在PHP脚本执行的特定位置唤醒调试器,请从PHP生成SIGTRAPgdb通常会强制要求您。
  6. 玩得开心!

答案 1 :(得分:0)

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

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

然后你必须运行apache然后运行这个过程。

为了在使用浏览器访问PHP / Apache时给自己留出时间,请在PHP脚本中添加一个sleep调用。如果你ps,你会看到进程处于睡眠状态。或者你可以让它在进入睡眠状态之前将其进程ID写入tmp中的文件。