dae*_*hee 6 php zend-framework bytecode
是否有任何文档描述了php zend vm的字节码指令结构?
php网站上有操作码编号和名称, 但我想知道更详细的结构,如操作数大小或语法.
是否有任何文件的zend vm字节码,如flash字节码文件,或英特尔指令参考手册或java字节码手册?
先感谢您
详细信息可以直接在Zend VM的源代码中找到:
https://github.com/php/php-src/blob/master/Zend/zend_vm_gen.php
对于每个 Zend VM 操作,都有一个要运行的本机 C 函数,并为其指定 0、1 或 2 个操作数。完成操作后,它会给出结果以及任何附加信息。此外,该操作还保存有关传入的任何操作数的类型、结果类型和操作码的信息。
(来源: https: //x-team.com/blog/learn-about-php-opcodes)
然而,理解任何特定的用例可能非常困难。一个可能的解决方案是安装 Vulcan Logic Disassembler (vld) 扩展。vld 挂接到 Zend 引擎并转储脚本的所有操作码。
(来源:https ://ctors.net/2015/09/11/php_opcodes )
通过此扩展,可以转储操作码和 PHP 脚本的内部表示。2016 年发布的0.14.0 版本虽然仍处于测试阶段,但也支持 PHP 7.0 和 7.1。
最新的开发源码和安装说明可以在作者的Github仓库中找到:
https://github.com/derickr/vld
| 归档时间: |
|
| 查看次数: |
420 次 |
| 最近记录: |