Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试PHP_Php_Debugging_Xdebug - Fatal编程技术网

调试PHP

调试PHP,php,debugging,xdebug,Php,Debugging,Xdebug,我已经使用xdebug调试和理解php项目中的代码有一段时间了,有时还不清楚php内部发生了什么 是否可以设置xdebug或gdb,以便跟踪实际的php内置函数?我怀疑,xdebug是用于跟踪php代码,而不是内部代码。内部构件被认为是无bug的(很明显,它们有时不是,但这超出了xdebug的范围) 如果您想了解内置函数的功能,可以随时查看PHP源代码,但这有时非常棘手。当我想知道PHP手册文档将要做什么时,PHP手册文档总是能很好地为我服务。如果您使用的是macosx、solaris或最新的f

我已经使用xdebug调试和理解php项目中的代码有一段时间了,有时还不清楚php内部发生了什么


是否可以设置xdebug或gdb,以便跟踪实际的php内置函数?

我怀疑,xdebug是用于跟踪php代码,而不是内部代码。内部构件被认为是无bug的(很明显,它们有时不是,但这超出了xdebug的范围)


如果您想了解内置函数的功能,可以随时查看PHP源代码,但这有时非常棘手。当我想知道PHP手册文档将要做什么时,PHP手册文档总是能很好地为我服务。

如果您使用的是macosx、solaris或最新的freebsd系统,您可以使用一些dtrace。对于那些太多的“WTF是PHP在做什么?”时刻,它可以派上用场

如果使用调试符号编译php,则可以使用gdb跟踪C级代码。请从这里开始:


测试Zend引擎输出的一种方法是查看操作码内部,您可以使用(Vulcan Logic Disassembler),它似乎也处于打开状态。注:仅适用于*nix系统(有关要求,请参阅网站)


调试这些操作码的一些示例可以在和等文章中找到。

还有一个很棒的Google Chrome扩展,它允许:

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

推荐给大家

一个快速的谷歌出现了-如果你有更多的指针开始,请张贴他们没有什么具体的,我不知道的链接,谢谢。我遇到了一些问题,从php跟踪所有文件系统调用就足够了。专门寻找羊圈和羊群。事实证明,PHP不喜欢include_once/require_once声明(它不像我所说的那样是use(perl)/import(java)替代)。太多的引用文件会导致flock的死亡。哦,这是一个很好的资源。