3

一段时间以来,我一直在使用 xdebug 调试和理解 php 项目中的代码,并且有时会遇到不清楚 PHP 内部发生了什么的情况。

是否可以设置 xdebug 或 gdb 以便我可以追踪到实际的 php 内置函数?

4

5 回答 5

2

如果您使用的是 macosx、solaris 或最近的 freebsd 系统,您可以向它扔一点 dtrace。它可以为那些太多“PHP 正在做什么?”的人派上用场。时刻。

于 2009-05-02T00:48:07.040 回答
1

我对此表示怀疑,xdebug 旨在跟踪您的 PHP 代码,而不是内部。假定内部是无错误的(显然有时并非如此,但这超出了 xdebug 的范围)。

如果您想知道内置函数的作用,您可以随时查看 PHP 源代码,但这有时很麻烦。当我想知道他们会做什么时,PHP 手册文档总是能很好地为我服务。

于 2009-05-02T00:19:19.543 回答
1

您可以使用 gdb 跟踪 C 级代码,前提是您已使用调试符号编译了 php。看看这里开始:

http://derickrethans.nl/phps_segmentation_faults_gdbfu.php

于 2009-05-02T09:38:55.343 回答
1

测试 Zend 引擎输出的一种方法是查看操作码,您可以使用Derick Rethan 的 VLD(Vulcan Logic Dissasembler),它似乎也在PECL上。注意:仅适用于 *nix 系统(有关要求,请参见站点)。

调试这些操作码的一些示例可以在Sara Golemon 的博客中找到,如了解操作码一段字符串有多长?.

于 2009-05-03T11:58:14.377 回答
1

还有一个很棒的 Google Chrome 扩展PHP 控制台,带有php 库 ,它允许:

  • 在 Chrome JavaScript 控制台和通知弹出窗口中查看错误和异常。
  • 转储任何类型变量。
  • 远程执行 PHP 代码。
  • 通过密码保护访问。
  • 按请求对控制台日志进行分组。
  • 跳转到错误文件:文本编辑器中的行。
  • 将错误/调试数据复制到剪贴板(供测试人员使用)。

推荐给大家!

于 2013-11-30T12:33:22.673 回答