文档章节

用phpdbg查看opcode

南湖船老大
 南湖船老大
发布于 2016/10/02 12:15
字数 223
阅读 140
收藏 1

有人问到,我就试了下。关于PHPDBG的文章不多,官方文档也不是很详细。当然,一部分原因是PHP debug的黑历史,不提。之前有个vld扩展能看opcode,不过那是PHP 5.2/5.3时代了,也好多年没见过了。试了下phpdbg,是可以直接看opcode的,就是文档不是很清楚。

opcode,官方文档:http://php.net/manual/en/internals2.opcodes.list.php

直接说phpdbg查看opcode的方式

<?php
$a=1;
$b=&$a;
$b=$a++;
echo $a,'-',$b;

然后:

php opcode phpdbg

和opcode相关的几个指令主要有下面几个:

p print print something
p e print exec print out the instructions in the main execution context
p o print opline print out the instruction in the current opline
p c print class print out the instructions in the specified class
p m print method print out the instructions in the specified method
p f print func print out the instructions in the specified function
p s print stack print out the instructions in the current stack

© 著作权归作者所有

共有 人打赏支持
南湖船老大
粉丝 678
博文 11
码字总数 10246
作品 0
深圳
其他
php内核分析(六)-opcode

这里阅读的php版本为PHP-7.1.0 RC3,阅读代码的平台为linux 查看opcode php是先把源码解析成opcode,然后再把opcode传递给zend_vm进行执行的。 在php7中,我们能很方便用phpdbg来查看一个文件...

王二狗子11
01/07
0
0
PHP的SAPI模块--PHPDBG

PHPDBG是一个PHP的SAPI模块,可以在不用修改代码和不影响性能的情况下控制PHP的运行环境。 PHPDBG的目标是成为一个轻量级、强大、易用的PHP调试平台(PHP5.4+) 主要功能: 单步调试 灵活的下...

leo108
2014/09/10
804
0
PHP 7.1.1 和 7.0.15 正式发布

局长
2017/01/19
4.4K
10
Linux 下编译安装 PHP 5.6

系统环境: CentOS 6.5 / 7.0 x8664 Fedora 20 x8664 下载 PHP 源码包 # wget http://cn2.php.net/distributions/php-5.6.0.tar.xz# xz -d php-5.6.0.tar.xz# tar xf php-5.6.0.tar -C /usr......

legend3
2015/08/14
0
0
PHP安装parsekit扩展查看opcode

也可以通过VLD查看,具体请看本人写的http://blog.csdn.net/21aspnet/article/details/7002644 安装parsekit扩展 http://pecl.php.net/package/parsekit 下载最新的 #wget http://pecl.php.......

晨曦之光
2012/03/09
357
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

异步化,高并发大杀器

今天来聊聊如何让项目异步化的一些事。 在进入正文之前,顺便给大家推荐一个Java架构方面的交流学习群:698581634,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分...

Java大蜗牛
8分钟前
0
0
织梦dedecms安全设置

网站本身做好防范: 1、修改默认后台名。 打开网站根目录,找到[dede],这个文件夹就是后台的路径,可以随意修改,比如修改为[adminbuy],此时后台登陆的路径为:http://www.*****.com/admi...

雨季2014
8分钟前
0
0
完美Python入门基础知识点总结,看完你的Python就完全入门了!

Python标识符 在 Python 里,标识符有字母、数字、下划线组成。 在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。 Python 中的标识符是区分大小写的。 以下划线...

糖宝lsh
15分钟前
0
0
Java关于前后台传输中文乱码以及Excel下载乱码解决

针对乱码,一般情况是前后台以及中间件编码格式不同导致.故需要保证编码格式相同即可. 1.前台页面格式指定,这里用的是jsp,故需要将pageEncoding指定为"UTF-8" 2.指定服务器编码格式,比如用的t...

勤奋的蚂蚁
17分钟前
0
0
Flutter组件 - Flexible

Flexible是一个控制Row、Column、Flex等子组件如何布局的组件。 Flexible组件可以使Row、Column、Flex等子组件在主轴方向有填充可用空间的能力(例如,Row在水平方向,Column在垂直方向),但是...

一箭落旄头
20分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部