调试 PHP

发布于 2024-07-17 21:02:35 字数 119 浏览 7 评论 0原文

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

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

I've been using xdebug to debug and understand code in php projects for a while now, and have sometimes come into situations where it's been unclear what's going on inside of PHP.

Is it possible to set xdebug or gdb up so that i can trace into actual php builtin functions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

梦境 2024-07-24 21:02:35

如果您使用的是 macOS、solaris 或最新的 freebsd 系统,您可以对其进行一些 dtrace。 对于那些无数“PHP 到底在做什么?”的人来说,它可以派上用场。 时刻。

If you are using a macosx, solaris or recent freebsd system you can throw a little dtrace at it. It can come in handy for those all too numerous "WTF is PHP doing?" moments.

感情洁癖 2024-07-24 21:02:35

我对此表示怀疑,xdebug 的目的是跟踪你的 PHP 代码,而不是内部结构。 内部被认为是无错误的(显然有时并非如此,但这超出了 xdebug 的范围)。

如果您想知道内置函数的作用,您可以随时查看 PHP 源代码,但这有时非常棘手。 当我想知道 PHP 手册文档会做什么时,PHP 手册文档总是对我很有帮助。

I doubt it, xdebug is intended for tracing your PHP code, not the internals. The internals are assumed to be bug-free (which obviously they aren't sometimes, but that's beyond the scope of xdebug).

You can always look at the PHP source if you want to know what the built-in functions do, but that's sometimes pretty hairy. The PHP manual docs have always served me well enough when I want to know what they'll do.

久伴你 2024-07-24 21:02:35

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

http://derickrethans.nl/phps_segmentation_faults_gdbfu.php

You can use gdb to trace in to the C-level code, provided you have php compiled with debug symbols. Have a look here for a start:

http://derickrethans.nl/phps_segmentation_faults_gdbfu.php

万水千山粽是情ミ 2024-07-24 21:02:35

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

调试这些操作码的一些示例可以在Sara Golemon 的博客上找到,在诸如 了解操作码 和 < a href="http://blog.libssh2.org/index.php?/archives/28-How-long-is-a-piece-of-string.html" rel="nofollow noreferrer">a 有多长一段绳子?。

One way to test the output of the Zend engine, to peek inside at the opcodes, you can use Derick Rethan's VLD (Vulcan Logic Dissasembler), which also appears to be on PECL. Note: only works on *nix systems (see site for requirements).

Some examples of debugging these opcodes can be found on Sara Golemon's blog, in articles such as Understanding Opcodes and How long is a piece of string?.

花间憩 2024-07-24 21:02:35

还有很棒的 Google Chrome 扩展 PHP 控制台,其中 php 库 允许:

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

推荐给大家!

There is also great Google Chrome extension PHP Console with php library that allows to:

  • See errors & exception in Chrome JavaScript console & in notification popups.
  • Dump any type variable.
  • Execute PHP code remotely.
  • Protect access by password.
  • Group console logs by request.
  • Jump to error file:line in your text editor.
  • Copy error/debug data to clipboard (for testers).

Recommend to everyone!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文