Xdebug原理】的更多相关文章

前言: 前面一篇博文记录了Xdebug的安装配置.配置使用起来相对简单易懂,那么Xdebug的实现原理又是如何呢?所以就找了些资料来理解下其中的原理. 内容: Xdebug工作原理 1,IDE(如PhpStorm)已经集成了一个遵循BGDP的Xdebug插件,当开启它的时候, 会在本地开一个xdebug调试服务,监听在调试器中所设置的端口上,默认是9000,这个服务就会监听所有到9000端口的链接.在PhpStorm中,位于:工具栏 > Run > Start / Stop Listening…
2017年05月26日  经验心得 目录   一. 环境介绍 二. 远程环境配置 2.2 Xdebug安装 2.3 配置 三. 本地phpstorm配置 3.1 下载远程代码 3.2 添加php解释器 3.3 配置Debug 3.4 配置Server 3.5 配置调试选项 3.6 浏览器添加书签或者Xdebug Helper 四. 数据流程 4.1 Xdebug工作原理 五. 问题分析 5.1 问题背景 5.2 疑问点 作者:廖新喜 原文地址:PhpStorm Xdebug远程调试环境搭建原理分…
配置好xdebug,也能使得phpstorm像java哪像跑断点调试,爽的一笔!!! 下载xdebug并配置 [XDebug] zend_extension=php_xdebug-2.4.0rc3-5.6-vc11-nts.dll xdebug.collect_params = ;打开收集“函数参数”的功能.将函数调用的参数值列入函数过程调用的监测信息中.此配置项的默认值为off. xdebug.collect_return = on ;收集函数返回值 xdebug.profiler_enabl…
xdebug可以控制PHP程序的执行,这意味着xdebug可以在任何时候暂停或者恢复正在运行的PHP程序.当PHP程序被暂停的时候,xdebug可以获取到程序的有关 信息,比如变量的值等.xdebug也可以修改一个变量的值,然后再恢复暂停的程序,让其继续运行. xdebug配合IDE执行 可视化调试的流程 (类似于VisualStudio单步调试)被称为“远程调试”,是因为调试时有一个Server(xdebug)和一个Client(IDE),所以在调试的时候,被调试的PHP程序和调试PHP程序的…
转自 https://segmentfault.com/a/1190000002528341 使用PhpStorm+xdebug单步调试程序可以快速帮助自己熟悉项目代码! 运行原理 在实际使用前,我们来简单了解xdebug远程调试的原理,这样当xdebug不听话的时候,我们也知道从哪里收拾它.详细文档参见此处. xdebug远程调试分为两部分:调试客户端和xdebug服务端.前者就是运行我们代码调试器的地方,我这里是IDEA,后者是xdebug运行的地方.当我们尝试使用xdebug进行调试时,客…
xdebug调试原理 IDE(如PHPStorm)已经集成了一个遵循BGDP的XDebug插件,当开启它的时候, 会在本地开一个XDebug调试服务,监听在调试器中所设置的端口上,默认是9000,这个服务就会监听所有到9000端口的链接. 当浏览器发送一个带 XDEBUG_SESSION_START 的参数的请求到服务器时,服务器接受后将其转到后端的php处理,如果php开启了XDebug模块,则会将debug信息转发到客户端IP的IDE的调试端口上. 当参数或者cookie信息中不带 XDEB…
通过Xdebug进行远程调试时,PHPSTORM等IDE会监听Xdebug设置的调试ip和端口(php.ini中配置) [xdebug] ; Xdebug zend_extension=php_xdebug.dll xdebug.remote_enable = On xdebug.remote_host = 127.0.0.1 xdebug.remote_port = 9000 xdebug.idekey="PHPSTORM" 下面这张截图是phpstorm开启listening fo…
使用Xdebug的远程调试,Xdebug作为一个嵌入到PHP的程序,扮演着客户端的角色,而IDE则作为服务器.下面的动态图展示了连接建立的过程. 服务端的IP为10.0.1.2, 使用HTTP协议,端口为80 IDE在IP地址为10.0.1.42的机器上,xdebug.remote_host被设置为10.0.1.42 IDE监听9000端口,因此,xdebug.remote_port设置为9000 HTTP请求从运行这IDE的服务器上发起 Xdebug连接到10.0.1.42:9000 调试开始…
现在我们自己公司的各种开发和测试服务器,都是使用阿里云的服务器.一些PHP的项目,无法在本地搭建完整的环境,在外网服务器上调试更方便定位问题.发现网上没有完整的关于如何配置PHPStorm和XDebug远程调试的资料,自己配置的过程遇到一些问题,写出来给大家做一个参考. 演示环境 本地开发环境:Mac Pro + PHPStorm 9.0 服务器的环境:Ubuntu 14 LTS + PHP 5.5 + XDebug 2.2.3 不管是Windows还是其它的Linux的版本,具体的配置差不多,…
PHP程序在开发的时候调试是比较方便的,大体情况下,输出,打log是可以解决几乎所有问题. 但是还不够,有些问题,用打log的形式定位问题是相当痛苦的事情,有些时候测试环境没配好的话,你可能需要做许多的准备,才能跑一次调试,然后各种log看的头晕. Xdebug是一个可以用于PHP断点调试的强大工具,可以大大缩短定位问题的时间,而且一步步的调试,更容易发现一些,你很难注意到的潜在问题. 背景: 1.公司内网,动态ip,有很多的接口权限都是需要对应的网络策略的,代码框架并没有很好的支持生产环境和测…
1. 安装xdebug 第一步: 得到本地PHP配置信息 在终端中运行: php -i > outputphp.txt 然后将得到的txt文件中的信息拷贝并复制到http://xdebug.org/wizard.php 这个页面提供的一个textarea中. 然后点击下方的Analyze按钮, 它会自动帮你解析你本地的PHP环境信息从而得到你需要下载的xdebug版本和相关配置指令. 为了进行下面步骤,还需要安装php5-dev依赖包: sudo apt-get install php5-dev…
paip.性能跟踪profile原理与架构与本质-- python扫带java php ##背景 弄个个输入法音标转换atiEnPH工具,老是python性能不的上K,7k记录浏览过k要30分钟了. ##目标  分析一个程序的性能,最终都归结为回答4个基本的问题:     程序运行速度有多快?     运行速度瓶颈在哪儿?     程序使用了多少内存?     内存泄露发生在哪里?     谁引用着泄漏的对象?               作者 老哇的爪子 Attilax 艾龙,  EMAIL:…
使用phpstorm和xdebug实现远程调试 2012-05-23 10:06:35 vs的断点调试功能很强大有木有,能查看所有变量有木有.php调试很麻烦有木有,echo,var_dump写得你想吐了有木有.想体验一下ide调试的快感吗?那就来使用xdebug吧. 1.原理:xdebug是一款php调试插件,支持远程调试,就是在php文件运行的时候,能通过tcp协议,来发送调试信息到远程端口,ide在收到调试信息的时候,可以向xdebug发送单步运行,中止运行,运行等命令.这样就实现了vs那…
转自:http://www.softown.cn/post/115.html Xdebug是PHP开发中两个常用的断点调试工具之一(另一个为Zend Debugger). 现在,我们在Zend Studio中集成PHP的Xdebug模块,从而在Zend Studio中实现断点调试功能. 1.下载.安装.配置Xdebug 关于如何在PHP中安装.配置Xdebug模块,请直接参考文章PHP安装配置Xdebug模块详解. 2.Xdebug远程连接配置 想要在Zend Studio中使用Xdebug,就…
一 x-debug 是什么?在配置之前,先解决一个问题,x-debug 是什么?我也不查标准答案了,就说说个人理解.x-debug是一个PHP调试工具,帮助开发者在IDE里面进行代码的断点调试,效果如下: 1.直观显示变量的值,用以辅助判断赋值对不对:2.追踪代码的执行流程,可以追踪在哪个流程出错了:3.... 二 断点打在哪里?在没有使用x-debug 的年代,我们喜欢使用echo/var_dump/var_export 来输出调试.而现在使用了x-debug,那么,断点就打在我们想 echo…
之前整理在印象笔记中,现在搬出来.分本地调试和远程调试.本文亲测通过并截图,有问题欢迎留言探讨. (参考网上多位前辈的博客,整理在笔记里忘记保存原文链接,这里无法贴出链接,望见谅)   # 痛处 一般php项目调试都用echo, var_dump()之类的函数调试,项目大的话很不方便,也很低效:   # 预备 安装xdebug扩展: 官网https://xdebug.org/download.php windows找相应的版本下载即可,linux下在 https://xdebug.org/wiz…
操作篇 这部分主要讲,如何开启tomcat远程调试,并佐以实例.本文方式适用于windows和linux. 假设有两台机器,A是tomcat服务器所在机器,B是IDE安装机器.A和B可以是同一台机器,通常A是测试环境,B是开发环境. 简洁版本 在A机器的tomcat/bin/文件夹中,新建文件setenv.bat(或者setenv.sh,根据你的操作系统),输入: export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,susp…
本文目录 : Xdebug的工作原理 Xdebug扩展的配置 NetBeans的配置 调试实例 本文小结 参考文档 Xdebug:是PHP的调试器和分析器(Debugger and Profiler Tool for PHP). 本章着重讲PHP的调试. 日常开发PHP,有时遇到需要频繁打印变量的情况,一直用 var_dump 会很麻烦. 又或者用了一个新的框架,或阅读一些比较大的开源项目,梳理代码流程就很重要了. 如果用上 Xdebug 的话,就很方便,你可以在程序中打断点,单步运行,运行中修…
今天研究了下用phpstorm做xdebug调试,首先申明本人电脑是mac系统,软件包管理用的是homebrew,phpstorm用的是2016.3.2版本,php56,xdebug2.5.1,希望对研究此方面的同学有一点帮助,毕竟我花了一上午,google了好多资料才弄好.下面是效果图: 先说下原理:xdebug可以控制PHP程序的执行,这意味着xdebug可以在任何时候暂停或者恢复正在运行的PHP程序.当PHP程序被暂停的时候,xdebug可以获取到程序的相关信息,比如变量的值等.xdebu…
先让php支持xdebug 方式一: https://xdebug.org/download.php 下载相应的xdebug  可以到http://xdebug.org/wizard.php 把phpinfo的所有信息粘贴上去,会给出相应的版本 解压 tar -zxvf xdebug  cd xdebug目录下 执行 phpize(我的目录是/usr/local/bin/phpize,用sudo执行) 报错出现Cannot find autoconf. Please check your aut…
先让php支持xdebug 方式一: https://xdebug.org/download.php 下载相应的xdebug  可以到http://xdebug.org/wizard.php 把phpinfo的所有信息粘贴上去,会给出相应的版本 解压 tar -zxvf xdebug cd xdebug目录下 执行 phpize(我的目录是/usr/local/bin/phpize,用sudo执行) 报错出现Cannot find autoconf. Please check your auto…
Atitit web remote远程调试的原理attilax总结 Jvm是vm打开一个debug port,然后ide先连接..然后执行url,就会vm会与ide沟通.. Php的xdebug port 9000是在phpstorem打开的...如果执行url,也会启动debug..必须要预先连接ide和apache才可..使用phpstorm打开debug page即可,预先连接好.然后就xdebug就可以与ide打开的9000 debug port连接调试了.. 连接建立 对于有静态IP.…
在vim中 安装php的xdebug和 vdebug插件, 在vim中进行调试php代码 参考: http://www.cnblogs.com/qiantuwuliang/archive/2011/01/23/1942382.html 在vim下 安装vdebug参考 http://blog.csdn.net/guyue35/article/details/53968611 在bash下, 输出多行文字到文件中: 使用的是cat命令, 而不是echo命令 cat本身是读取文件中的内容 连接输出…
Php加速原理及工具测试 本实验相关软件地址:http://pan.baidu.com/s/1dDuwvE5 第一部分.Php加速分类: 一.缓冲层级别的优化 1.xCache是把 PHP 操作码缓存到内存中的 PHP 扩展中,XCache 将避免代价高昂且不必要的花费来重新编译相同的 PHP 代码去交付一个页面,这一点上和Accelerator有点相似,我一直认为他们的机理是一样的,不过xCahce是开源产品[opensource]. 2.Zend Accelerator 站在解析和执行的中间…
Atitit.ioc 动态配置文件guice 设计原理 1. Bat启动时注入配置文件1 2. ioc调用1 3. Ioc 分发器 配合 apche  MethodUtils.invokeStaticMethod2 1. Bat启动时注入配置文件 SET JAVA_HOME=C:\Program Files\Java\jdk1.8.0_71 set  RESIN-HOME=c:\resin-4.0.22 set classpath=%classpath%;%RESIN-HOME%\lib\jas…
我们在Eclipse里选中一个PHP文件,右键选择Debug As->PHP CLI Application. 所谓CLI应用,是指这种脚本文件不需要任何Web服务器即可运行,当然, PHP运行时还是需要的. 我们在弹出的debug窗口里看到了XDebug: XDebug是PHP调试的利器.在我的文件夹C:MyAppwampinphpphp5.5.12里面有个php.ini配置文件,文件的末尾有这样一个配置: ; XDEBUG Extension zend_extension = "C:/…
目录 1. 打可执行Jar包 2. 可执行Jar包内部结构 3. JarLauncher 4. 简单总结 5. 远程调试 Spring Boot有一个很方便的功能就是可以将应用打成可执行的Jar.那么大家有没想过这个Jar是怎么运行起来的呢?本篇博客就来介绍下Spring Boot可执行Jar包的运行原理. 1. 打可执行Jar包 将Spring Boot应用打成可执行Jar包很容易,只需要在pom中加上一个Spring Boot提供的插件,然后在执行mvn package即可. <build>…
Mac: phpstorm中使用xdebug调试php###phpstorm和webserver都在同一台机器上这种情况1.安装xdebug使用pecl安装即可2.php.ini配置[xdebug]zend_extension="/usr/local/opt/php@7.1/pecl/20160303/xdebug.so"xdebug.remote_enable = 1 //是否运行远程终端,必须开启xdebug.remote_handler = "dbgp"xde…
作者:半船 来源:CSDN 原文:https://blog.csdn.net/yinhangbbbbb/article/details/79247331 花了一周多时间最详细的整理了PHPSTORM+XDEBUG的调试教程,实现了php程序的远程调试.单步调试.跟踪等高级功能.工欲善其事必先利其器,希望对需要的小伙伴有所帮助. 0 Xdebug调试的原理(选看) 图0-1 单机调试原理示意图 图0-2 多机调试原理示意图 对于PHP开发,初来咋到,开发环境的搭建和理解感觉是最烦人的一件事了.不像…
php面试专题---1.php中变量存储及引用的原理 一.总结 一句话总结: 查看变量的存储结构可以安装xdebug扩展,用xdebug_debug_zval()方法,不推荐使用memory_get_usage()方法 1.php中memory_get_usage()方法的作用是什么? 返回分配给 PHP 的内存量 2.什么是引用变量?在PHP当中,用什么符号定义引用变量?? 用不同的名字访问同一个变量内容:在PHP中引用意味着用不同的名字访问同一个变量内容. 使用&符号 3.php变量存储机制…