文件 php-5.6.26/Zend/zend_vm_execute.h

ZEND_API void execute_ex(zend_execute_data *execute_data TSRMLS_DC)
{DCL_OPLINEzend_bool original_in_execution;original_in_execution = EG(in_execution);  // 保存现场EG(in_execution) = 1; // 正在执行中 if (0) {
zend_vm_enter:execute_data = i_create_execute_data_from_op_array(EG(active_op_array), 1 TSRMLS_CC);}LOAD_REGS();LOAD_OPLINE();while (1) {int ret;
#ifdef ZEND_WIN32if (EG(timed_out)) {zend_timeout(0);}
#endifif ((ret = OPLINE->handler(execute_data TSRMLS_CC)) > 0) {  // execute_data.opline->handler(execute_data TSRMLS_CC) //  操作码对应的处理函数switch (ret) {case 1:EG(in_execution) = original_in_execution; // 还原现场return;case 2:goto zend_vm_enter; // 进入虚拟机break;case 3:execute_data = EG(current_execute_data);  // 当前正在执行的数据 break;default:break;}}}zend_error_noreturn(E_ERROR, "Arrived at end of main loop which shouldn't happen");
}ZEND_API void zend_execute(zend_op_array *op_array TSRMLS_DC)
{if (EG(exception)) {return;} zend_execute_ex(i_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC) TSRMLS_CC); // zend_execute_ex = execute_ex
}

转载于:https://www.cnblogs.com/xiaoyaogege/p/8628787.html

php-5.6.26源代码 - opcode执行相关推荐

  1. php-5.6.26源代码 - opcode处理器,“函数调用opcode”处理器,如何调用扩展模块的函数...

    // opcode处理器 --- ZEND_DO_FCALL_SPEC_CONST_HANDLER实现在 php-5.6.26\Zend\zend_vm_execute.h static int ZE ...

  2. 【COCOS2D-HTML5 开发之三】演示样例项目附源代码及执行的GIF效果图

    本站文章均为 李华明Himi 原创,转载务必在明显处注明:(作者新浪微博: @李华明Himi )  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/coc ...

  3. Lua源码分析 - 虚拟机篇 - 语义解析之Opcode执行(18)

    目录 一.虚拟机篇 - 指令执行状态机luaV_execute 二.虚拟机篇 - 状态机的具体实现原理 一.虚拟机篇 - 指令执行状态机luaV_execute 在<Lua源码分析 - 主流程篇 ...

  4. Node-RED使用指南:26:使用exec执行系统命令

    这篇文章继续介绍常用的exec节点在Node-RED中的使用方式. 事前准备 以容器方式启动Node-RED服务,启动命令如下所示: 启动命令:docker run -it -p 1880:1880 ...

  5. Java 源代码怎么执行的

    许多 Java 虚拟机的执行引擎在执行 Java 代码的时候都是解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)混合运行. 大体流程为: 编写 java 文件源码 通过 java ...

  6. matlab在图像上画出来的矩形框如何变成可托动的_计算机基础系列:源代码如何被计算机执行...

    计算机芯片的物理特性决定了它只能接受二进制指令.不同计算机芯片的指令集不同.高级编程语言需要转化成二进制机器语言才能被计算机所执行.编译型语言需要使用编译器经过编译和连接生成可执行文件,解释型语言需要 ...

  7. 解析java源代码_一步步解析java执行内幕

    对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者叫底层机制)不失为一种良好的方式.在本篇文章中,将重点研究java源代码的执行原理,即从程 序员编写JAVA源代码,到最终形成产品,在整个过 ...

  8. 计算机基础:源代码如何被计算机执行

    计算机基础系列:源代码如何被计算机执行 计算机芯片的物理特性决定了它只能接受二进制指令.不同计算机芯片的指令集不同.高级编程语言需要转化成二进制机器语言才能被计算机所执行.编译型语言需要使用编译器经过 ...

  9. 深入理解PHP内核(四)概览-PHP脚本的执行

    本文链接:http://www.orlion.ml/236/ 下面以php命令行程序为例解释PHP脚本是怎么被执行的.例如如下脚本: <?php $str = 'hello world'; ec ...

最新文章

  1. 生活总有烦心事? 可能是你数学不好
  2. javascript 判断变量是否为null
  3. 关于ie6下提交上传表单的注意事项
  4. 【记录一下】从0到1 我的python开发之路
  5. 新0-Day漏洞或将给Linux桌面发行版带来浩劫
  6. pixel 解锁_如何在Google Pixel 4和Pixel 4 XL上禁用面部解锁
  7. 使用Navicat计划任务备份数据库
  8. Golang Web入门(3):如何优雅的设计中间件
  9. 减小iOS应用程序的大小
  10. 日常推荐大神操作,如何再oracle中delete数据后恢复
  11. python属于汇编语言还是高级语言_python语言属于汇编语言吗?_后端开发
  12. 图解: 线程状态转换(线程生命周期这一篇够用了)
  13. 【图形和图像】三原色
  14. 中兴新支点操作系统上的快捷键
  15. CSDN高校俱乐部2013年秋季北京地区第一站“编程语言的应用及其发展”—北京联合大学
  16. 【卷积神经网络】感受野
  17. 软著申请需要多少钱?大概需要多久?
  18. Javascript实现图片轮播效果。
  19. 知乎 高级操作系统_一款假的国产操作系统被吹上知乎热榜:浮夸只会害了科技创新...
  20. 使用ssh 的ControlMaster实现不用每次ssh都输入密码

热门文章

  1. 随机发送n位数字+字母的验证码
  2. 拖动效果,防止选中文字兼容代码
  3. effective c++ 条款20:宁以pass-by-reference-to-const替换pass-by-value
  4. C#:导入Excel通用类(CSV格式)
  5. Session在类库中的使用
  6. Ubuntu中的launcher
  7. 20135231 —— 第六周任务总结报告
  8. 视觉基础与开发思路-第九节形态学操作
  9. c#以文件流的形式输出xml(可以解决内存溢出)-XmlTextWriter
  10. Silverlight的跨站策略和跨站策略文件