gpt4 book ai didi

php - 如何调试 PHP 的内部 C 代码?

转载 作者:可可西里 更新时间:2023-10-31 22:08:01 25 4
gpt4 key购买 nike

这里有没有人试过或者有可能吗?

我已经使用 PHP 好几年了,但从来不知道底层的 c 脚本。

有办法进去吗?

最佳答案

我对 Zend PHP 进行了一些修改。我发现它过于聪明,有些人甚至称它为在普通 View 中故意混淆。 PHP 的源代码是一种改变(或破坏)思想的物质,这取决于你在破译非常神秘的宏方面的能力。这是我对内核的印象。

编写扩展,is a breeze一旦掌握了 Zend 助手的窍门,大多数具有 C 高级/中级知识的人都可以通过基本扩展。还有很多例子。 PHP 最好的部分之一是构建系统的组织方式,添加新内容相对轻松。只要稍加努力和耐心,几乎任何 C 库都可以很容易地扩展到 PHP。

如果您不精通 C(以及接近于滥用预处理器的东西),看一眼 PHP 核心不会给您很多洞察力,也不是一个好主意如果您正在自学 C,请引用。

继续前进:

不要让我说过的任何话或其他人不得不说的话阻止你 grabbing the code并寻找你自己。话虽这么说,至于调试:

  • Valgrind(除非您使用大量抑制)不是很有帮助。 PHP(据我所知)使用 arch 优化读取,类似于新版本的 glibc。 IE。它会读取 32 位,即使它只吞下 8 位和尾随 NULL。

  • 我从未发现 GDB 对 PHP 非常有帮助。很多魔法都存在于很难追踪的宏中。

  • 您将很快看到 Zend 错误记录函数及其断言版本。使用它们,除非您调试 CLI 应用程序,否则 printf() 调试几乎没有用。

  • 垃圾收集会让您在使用 valgrind 的 massif 等工具时看到奇怪的东西。在 PHP 中分析堆的使用是我尚未发现的一门艺术。

最后,我想说的是,很高兴看到有人深入了解他们的语言。 SO 可以使用一些有助于揭开 PHP 核心神秘面纱的问题,所以请随时发布更多信息 :)

此外,请记住,Zend 并不是唯一 makes php .如果您希望 Zend 被采用,那么与 Zend 的兼容性是最重要的,但每个人仍然可以自由地做自己的事情。

关于php - 如何调试 PHP 的内部 C 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2506007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com