来自 金沙js77888 2019-08-08 05:00 的文章
当前位置: 金沙js77888 > 金沙js77888 > 正文

可以在PHP5.4和之上版本中使用

PHPDBG是叁个PHP的SAPI模块,能够在毫无修改代码和不影响属性的状态下决定PHP的运作情况。

PHPDBG的靶子是形成一个轻量级、庞大、易用的PHP调节和测量试验平台。能够在PHP5.4和上述版本中应用。在php5.6和上述版本将里面集成。

第一职能:

– 单步调节和测量检验

– 灵活的下断点方式(类措施、函数、文件:行、内部存款和储蓄器地址、opcode)

– 可径直调用php的eval

– 能够查看当前实践的代码

– 用户空间API(userland/user space)

– 方便集成

– 援救钦命php配置文件

– JIT全局变量

– readline协理(可选),终端操作更便于

– 远程debug,使用java GUI

– 操作便捷(具体看help)

安装
为了选择phpdgb,你首先要求下载二个php的源码包。然后下载phpdgb的源码包,并投身php源码包的sapi目录下。最后,你就能够实行命令安装了。编写翻译安装示比如下:

假如大家早就下载php的源码包,并雄居了/home/php目录下。

#cd /home/php/sapi
#git clone https://github.com/krakjoe/phpdbg
#cd ../
#./buildconf --force
#./config.nice
#make -j8
#make install-phpdbg

注意:

1、假如您的php版本是php5.6或许更加高的版本,phpdbg已经集成在php的代码包中,不须要单独下载了。

2、编写翻译参数中记得要加 –enable-phpdbg。

3、编写翻译时参数,–with-readline 能够选拔性增多。要是不加上,phpdbg的history等职能不或许采用。

主干选用
1、参数介绍
phpdbg是php的四个sapi,它能够以命令行的措施调节和测验php。常用参数如下:

The following switches are implemented (just like cli SAPI):

-n ignore php ini

-c search for php ini in path

-z load zend extension

-d define php ini entry

The following switches change the default behaviour of phpdbg:

-v disables quietness

-s enabled stepping

-e sets execution context

-b boring – disables use of colour on the console

-I ignore .phpdbginit (default init file)

-i override .phpgdbinit location (implies -I)

-O set oplog output file

-q do not print banner on startup

-r jump straight to run

-E enable step through eval()

Note: passing -rr will cause phpdbg to quit after execution, rather than returning to the console

2、常用作用
此前大家介绍过gdb工具。其实phpdbg和gdb功用有个别地点极度相像。如,能够设置断点,能够单步实施,等。只是他们调节和测验的语言不相同等,gdb侧重于调节和测量检验c恐怕c 语言,而phpdbg侧重于调节和测量检验php语言。上边大家将对phpdbg的一对常用调节和测量试验功用做下介绍。要调整的代码如下:

文件test_phpdbg_inc.php源代码如下:

<?php 
function phpdbg_inc_func()
{   
  echo "phpdbg_inc_func n"; 
} 
?>

文件test_phpdgb.php的源代码如下:

<?php 
  include(dirname(__FILE__)."/test_phpdbg_inc.php"); 
  class demo{   
    public function __construct(){
       echo __METHOD__.":".__LINE__."n";   
    }
    public function func($param){
       $param  ;
       echo "method func $paramn";
    }
    public function __destruct(){
       echo __METHOD__.":".__LINE__."n";
    }
  } 

 function func(){   
   $param = "ali";
   $param = $param   "baba";
   echo "function func $paramn";
 }

 $demo = new demo();
 $demo->func(1);
 func();
 phpdbg_inc_func();
?>

3、启动phpdbg

phpdbg安装成功后,会在设置目录的bin目录下。进入bin目录,直接输入phpdbg就可以。如下:

#phpdeg
[Welcome to phpdbg, the interactive PHP debugger, v0.4.0]
To get help using phpdbg type "help" and press enter
[Please report bugs to <http://github.com/krakjoe/phpdbg/issues>]
prompt>

要想加载要调度的php脚本,只须要实行exec命令就可以。如下:

#phpdbg
......
prompt> exec ./test_phpdbg.php

理当如此我们也能够在开发银行phpdbg的时候,内定e参数。如下:

#phpdbg -e ./test_phpdbg.php

4、查看扶助音讯

如若你在此之前使用过任何的调节和测验工具,你会意识phpdbg和他们相比较相似。然则,你使用最初,依然会时常索要得到扶助新闻。通过help命令大家能够得到支持新闻。

......
prompt> help

phpdbg is a lightweight, powerful and easy to use debugging platform for PHP5.4 
It supports the following commands:

Information
 list   list PHP source
......

5、设置断点

安装断点的一声令下和gdb同样。都以break,简写格局为b。可是具体的下令参数仍然拥相差相当的大的。和gdb的断点命令一样之处,它们都得以“按文件名:行号” 大概行号的主意设置断点。除外,phpdbg还提供了有的针对php特有的安装断点的秘技。如,依照opline设置断点,依照opcode设置断点等。

明明,php代码最后是分析成opcode,然后由php内核一条条试行。一条php语句,或者会深入分析成多条opcode。假设能够按opcode设置断点,大家就足以更加准确的追踪程序实践进度。下边大家来探视phapdbg设置断点的切实示例。

按opline设置断点:

此处所说的opline,就是以艺术入口作为源点,当前代码的行号。如test_phpdgb.php文件中,第18行的代码“$param = $param “baba”;”的opline便是 2。

......
prompt> b func#2
prompt> r
demo::__construct:5
method func 2
[Breakpoint #0 resolved at func#2 (opline 0x7f5b230a2e38)]
[Breakpoint #0 resolved at func#2 (opline 0x7f5b230a2e38)]
[Breakpoint #0 resolved at func#2 (opline 0x7f5b230a2e38)]
[Breakpoint #0 in func()#2 at ./test_phpdbg.php:18, hits: 1]
>00018:   $param = $param   "baba";
 00019:   echo "function func $paramn";;
 00020: }
......

6、查看断点

和gdb一样,phpdbg也是利用info break命令查看断点。示比如下:

....
prompt> info break
------------------------------------------------
File Breakpoints:
#1   /home/hailong.xhl/test_phpdbg.php:10
------------------------------------------------
Opline Breakpoints:
#0   7ff3219e1df0    (function breakpoint)
------------------------------------------------
Function opline Breakpoints:
#0   func opline 2
....

经过地点的显得,大家得以知晓。info break的来得结果中会把断点的门类也给显示出来。#背后的数字是断点号。大家能够依据断点号删除断点。

7、删除断点

和gdb命令不平等。phpdbg的去除断点不是delete命令,而是break del 命令。示比如下:

......
prompt> break del 1
[Deleted breakpoint #1]
prompt>
......

break del 前边的数字1正是断点号。

8、查看代码

phpdbg查看代码的通令也是list。不过和gdb相比,使用的方式更不计其数有的。

展现内定函数的代码:

......
prompt> l f func
 00017:   $param = "ali";
 00018:   $param = $param   "baba";
 00019:   echo "function func $paramn";;
 00020: }
 00021:
prompt>
......

单步试行

phpdbg的单步实施唯有多个限令 step。和gdb的step命令大约。都以单排一行的实践代码。注意,phpdbg是未曾next命令的。

....
prompt> s
[Breakpoint #0 resolved at func#2 (opline 0x152ba40)]
[L19      0x152ba70 ZEND_ADD_STRING     C2   @0  ./test_phpdbg.php]
>00019:   echo "function func $paramn";;
 00020: }
 00021:
....

继续施行

和gdb一样,phpdbg的继续实施命令也是continue,简写格局为c。

执行php代码

其一是phpdbg的贰个特色。能够在调度的进程中利用ev命令实施放肆的php代码。如:

......
prompt> ev $var = "val";
val
prompt> ev var_dump($var);
string(3) "val"
......

能够透过这种方式,在调整进程中动态的改动变量值,查看试行效果。

以上正是本文的全体内容,轻巧玩转调节和测验利器PHPDBG,希望大家垂怜得舍不得放手。

你或然感兴趣的稿子:

  • PHP 程序猿的调治将养技术小结
  • 利用NetBeans Xdebug调试PHP程序的法子
  • FirePHP 推荐一款PHP调节和测量试验工具
  • PHP 调节和测量检验工具Debug Tools
  • php品质优化分析工具XDebug 大型网址调节和测量检验工具
  • 深入分析phpstorm xdebug 远程断点调节和测验
  • 哪些行使FireFox插件FirePHP调试PHP
  • 用Zend Studio PHPnow Zend Debugger搭建PHP服务器调节和测量试验境况步骤
  • phpstorm配置Xdebug实行调治PHP教程
  • 焚林而猎ThinkPHP关闭调节和测验情势时报错的标题汇聚

本文由金沙js77888发布于金沙js77888,转载请注明出处:可以在PHP5.4和之上版本中使用

关键词: