我想使用GDB来检查构成php.so Apache扩展的C++代码。我想知道PHP在运行PHP应用程序时正在做什么。最好我会在LAMP系统上使用像Netbeans或Eclipse这样的IDE。使用GDB调试PHP解释器
2
A
回答
5
- 你想要得到的
mod_php
调试版本你的手(用符号)或build your own(configure --enable-debug
) - 您应该配置你的Apache始终保持只有一个工作进程实例了(这将是该实例您调试),也就是设置
MinSpareServers
,MaxSpareServers
和StartServers
全部为1同时确保任何超时参数慷慨设置 - Use
gdb
或any graphical interface togdb
(如ddd
或Eclipse CDT)附加到唯一的Apache工作进程。在其中一个PHP源代码中插入一个断点并继续。 - 将浏览器指向您的网络服务器并访问PHP页面。你的断点会触发。如果您想要在执行PHP脚本的特定时刻唤醒调试器,请从PHP生成
SIGTRAP
,gdb
通常会对您产生影响。
玩得开心!
0
也许你可以在windows上做到这一点。
但是,最好的选择是在Unix机器上执行此操作。您必须在启用调试的情况下编译所有内容。 GDB将需要访问这些目录的源代码。
然后,你将不得不运行apache,然后运行该过程。
为了让你自己有时间在浏览PHP/Apache的同时连接浏览器,请在PHP脚本中添加一个睡眠呼叫。如果你ps,你会看到进程处于睡眠状态。或者你可以让它在进行睡眠之前将其进程ID写入tmp中的一个文件中。
相关问题
- 1. 使用gdb调试回调
- 2. GDB调试信息解析器/说明
- 3. 用gdb调试
- 4. 使用GDB调试模板
- 5. 使用gdb来调试C++
- 6. 使用gdb调试pthreads
- 7. 使用gdb调试qemu
- 8. 使用gdb调试conio.h
- 9. 如何使用GDB调试
- 10. 使用GDB调试Android
- 11. 使用GDB调试iPhone
- 12. 使用GDB进行调试
- 13. 使用gdb调试Java .jar
- 14. 使用gdb调试llvm pass
- 15. 使用GDB调试进程
- 16. 解释GDB寄存器(SSE寄存器)
- 17. 解释gdb回溯
- 18. 解释gdb输出
- 19. gdb/mi gdb服务器调试
- 20. 当没有调试符号加载时,gdb如何解释`main`?
- 21. GDB Vs LLDB调试器
- 22. 用gdb调试C
- 23. PHP:如何调整PHPUnit以使用不同的PHP解释器?
- 24. 使Qt调试器正常工作(GDB)
- 25. 如何更改gdb使用的Python解释器?
- 26. Perl:调试解释器失败?
- 27. 如何使用JUnit测试解释器?
- 28. 如何解释GDB回溯?
- 29. 解释GDB分段错误
- 30. GDB输出的解释