亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發(fā) > PHP > 正文

PHP調(diào)試的強悍利器之PHPDBG

2024-05-04 23:43:13
字體:
供稿:網(wǎng)友
這篇文章主要為大家詳細(xì)介紹了PHP調(diào)試的強悍利器之PHPDBG的相關(guān)資料,感興趣的小伙伴們可以參考一下
 

PHPDBG是一個PHP的SAPI模塊,可以在不用修改代碼和不影響性能的情況下控制PHP的運行環(huán)境。

PHPDBG的目標(biāo)是成為一個輕量級、強大、易用的PHP調(diào)試平臺??梢栽赑HP5.4和之上版本中使用。在php5.6和之上版本將內(nèi)部集成。

主要功能:

– 單步調(diào)試

– 靈活的下斷點方式(類方法、函數(shù)、文件:行、內(nèi)存地址、opcode)

– 可直接調(diào)用php的eval

– 可以查看當(dāng)前執(zhí)行的代碼

– 用戶空間API(userland/user space)

– 方便集成

– 支持指定php配置文件

– JIT全局變量

– readline支持(可選),終端操作更方便

– 遠(yuǎn)程debug,使用java GUI

– 操作簡便(具體看help)

安裝
為了使用phpdgb,你首先需要下載一個php的源碼包。然后下載phpdgb的源碼包,并放在php源碼包的sapi目錄下。最后,你就可以執(zhí)行命令安裝了。編譯安裝示例如下:

假設(shè)我們已經(jīng)下載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已經(jīng)集成在php的代碼包中,無需單獨下載了。

2、編譯參數(shù)中記得要加 –enable-phpdbg。

3、編譯時參數(shù),–with-readline 可以選擇性添加。如果不添加,phpdbg的history等功能無法使用。

基本使用
1、參數(shù)介紹
phpdbg是php的一個sapi,它可以以命令行的方式調(diào)試php。常用參數(shù)如下:

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功能有些地方非常相似。如,可以設(shè)置斷點,可以單步執(zhí)行,等。只是他們調(diào)試的語言不一樣,gdb側(cè)重于調(diào)試c或者c++語言,而phpdbg側(cè)重于調(diào)試php語言。下面我們將對phpdbg的一些常用調(diào)試功能做下介紹。要調(diào)試的代碼如下:

文件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 $param/n";    }    public function __destruct(){       echo __METHOD__.":".__LINE__."/n";    }  }  function func(){      $param = "ali";   $param = $param + "baba";   echo "function func $param/n"; } $demo = new demo(); $demo->func(1); func(); phpdbg_inc_func();?>

3、啟動phpdbg

phpdbg安裝成功后,會在安裝目錄的bin目錄下。進(jìn)入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>

要想加載要調(diào)試的php腳本,只需要執(zhí)行exec命令即可。如下:

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

當(dāng)然我們也可以在啟動phpdbg的時候,指定e參數(shù)。如下:

#phpdbg -e ./test_phpdbg.php

4、查看幫助信息

如果你之前使用過其他的調(diào)試工具,你會發(fā)現(xiàn)phpdbg和他們比較相似。但是,你使用初期,還是會經(jīng)常需要獲取幫助信息。通過help命令我們可以獲取幫助信息。

......prompt> helpphpdbg is a lightweight, powerful and easy to use debugging platform for PHP5.4+It supports the following commands:Information list   list PHP source......

5、設(shè)置斷點

設(shè)置斷點的命令和gdb一樣。都是break,簡寫形式為b。不過具體的命令參數(shù)還是有所差異的。和gdb的斷點命令相同之處,它們都可以“按文件名:行號” 或者 行號的方式設(shè)置斷點。除此之外,phpdbg還提供了一些針對php特有的設(shè)置斷點的方式。如,根據(jù)opline設(shè)置斷點,根據(jù)opcode設(shè)置斷點等。

眾所周知,php代碼最終是解析成opcode,然后由php內(nèi)核一條條執(zhí)行。一條php語句,可能會解析成多條opcode。如果可以按opcode設(shè)置斷點,我們就可以更精確的跟蹤程序執(zhí)行過程。下面我們來看看phapdbg設(shè)置斷點的具體示例。

按opline設(shè)置斷點:

這里所說的opline,就是以方法入口作為起點,當(dāng)前代碼的行號。如test_phpdgb.php文件中,第18行的代碼“$param = $param + “baba”;”的opline就是 2。

......prompt> b func#2prompt> rdemo::__construct:5method 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 $param/n";; 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的顯示結(jié)果中會把斷點的類型也給顯示出來。#后面的數(shù)字是斷點號。我們可以根據(jù)斷點號刪除斷點。

7、刪除斷點

和gdb命令不一樣。phpdbg的刪除斷點不是delete命令,而是break del 命令。示例如下:

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

break del 后面的數(shù)字1就是斷點號。

8、查看代碼

phpdbg查看代碼的命令也是list。但是和gdb相比,使用的方式更多樣一些。

顯示指定函數(shù)的代碼:

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

單步執(zhí)行

phpdbg的單步執(zhí)行只有一個命令 step。和gdb的step命令差不多。都是一行一行的執(zhí)行代碼。注意,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 $param/n";; 00020: } 00021:....

繼續(xù)執(zhí)行

和gdb一樣,phpdbg的繼續(xù)執(zhí)行命令也是continue,簡寫形式為c。

執(zhí)行php代碼

這個是phpdbg的一個特色。可以在調(diào)試的過程中使用ev命令執(zhí)行任意的php代碼。如:

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

可以通過這種方式,在調(diào)試過程中動態(tài)的修改變量值,查看執(zhí)行效果。

以上就是本文的全部內(nèi)容,輕松玩轉(zhuǎn)調(diào)試?yán)鱌HPDBG,希望大家喜歡。



注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
免费观看在线黄色网| 成人天堂yy6080亚洲高清| 91玉足脚交嫩脚丫在线播放| 亚洲妇女成熟| 婷婷激情综合五月天| 制服丝袜亚洲色图| 91精品国产自产91精品| 天堂av中文在线| 麻豆国产在线| 日韩一区二区三区免费看| 色综合久久88色综合天天提莫| 国产亚洲成人精品| 麻豆国产传媒av福利| 你微笑时很美电视剧整集高清不卡| 无码人妻一区二区三区免费n鬼沢| 欧美性xxxx极品hd满灌| 黄色一级视频在线播放| 国产在线精品一区二区| 星空无限传媒在线| 九色视频一区| 亚洲 欧美 日韩 综合| 任你操这里只有精品| 国产区精品区| 亚洲精品乱码久久久久久蜜桃91| 日韩一卡二卡在线观看| 日本亚洲自拍| 国产资源在线看| 精品视频在线观看免费| 欧美日韩在线高清| 欧美日韩亚洲综合一区二区三区激情在线| 亚洲国产精品嫩草影院| 日韩久久精品| 99久久这里只有精品| 欧美aaaaaaaa牛牛影院| 熟女丰满老熟女熟妇| 午夜久久福利视频| 8x8ⅹ拨牐拨牐拨牐在线观看| 天天舔天天干| 91欧美大片| 国产精品影片在线观看| wwwxx欧美| 91精品国产综合久久蜜臀| 日日噜噜噜夜夜爽亚洲精品| 91jq激情在线观看| 极品日韩av| 精品卡一卡二| 久久99性xxx老妇胖精品| 亚洲欧美偷拍另类a∨色屁股| 激情综合网站| 国产精品视频一区二区三区| 日韩中字在线| 国产精品网站在线观看| 国产精品91一区二区三区| 欧美激情aⅴ一区二区三区| 卡一精品卡二卡三网站乱码| 中文字幕亚洲乱码熟女1区2区| 日本高清视频网站www| 极品人妻一区二区三区| 欧美影院天天5g天天爽| 亚洲国产欧美视频| 国产免费一级视频| 亚洲国产日韩综合一区| 亚洲天堂黄色片| 国产精品黄色影片导航在线观看| 欧美国产在线视频| 免费电影日韩网站| 偷拍自拍亚洲| 2018中文字幕一区二区三区| 日韩在线播放一区二区| 99只有精品| 在线看免费毛片| 男女性色大片免费观看一区二区| 一区二区三区四区在线不卡高清| 日本三级韩国三级久久| 69av视频在线播放| 在线播放精品| 99精品国产热久久91蜜凸| 欧美精品18videosex性欧美| 国产精品户外野外| 亚洲九九九在线观看| 少妇精品放荡导航| 成人天堂噜噜噜| 欧美亚洲三区| 欧美午夜视频网站| 国产不卡一二三| 亚洲乱码在线| 91丨九色丨蝌蚪丨老板| 亚洲国产综合91精品麻豆| 日本黄色片免费观看| 7777精品| 三上悠亚国产精品一区二区三区| 新片速递亚洲合集欧美合集| 成人高潮免费视频| 成人毛片18女人毛片| 国产精品免费视频xxxx| 亚洲精品tv久久久久久久久| 国产精品伦理一区| 精品人妻人人做人人爽夜夜爽| 亚洲免费视频一区二区三区| 99国产精品免费网站| 黑人玩弄人妻一区二区三区| 国产亚洲精品美女久久久m| 婷婷六月综合网| 青青草原免费观看| 极品美女一区二区三区视频| 国产精品10p综合二区| 一区二区三区中文字幕在线观看| 欧美系列一区| 不卡的日韩av| 九一精品在线观看| 一级毛片精品毛片| 国产精品久久久久久久久电影网| 国产精品免费视频xxxx| 国产精品系列在线播放| 美女一级全黄| 欧美一卡在线观看| 99国产麻豆精品| 99久久久国产精品免费蜜臀| 色av一区二区| 成人久久电影| 久久国产精品网站| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 欧美体内谢she精2性欧美| 中国动漫在线观看完整版免费| 欧美午夜精品理论片| 不卡一区在线观看| 66m—66摸成人免费视频| 99免费在线观看视频| 蜜桃传媒视频第一区入口在线看| 一级视频在线免费观看| 99精品在免费线偷拍| 色琪琪原网站亚洲香蕉| 制服诱惑亚洲| 一本大道久久a久久精品综合| 国产在线不卡| 日本视频一二区| eeuss在线观看| 色综合久久88色综合天天提莫| 精品久久免费看| 日韩成人一区二区| 日韩av手机在线观看| 久久久久免费看黄a片app| 日本一区二区在线免费播放| 欧美xxxx性猛交bbbb| 欧美 日韩 国产精品免费观看| 亚洲精品永久www嫩草| 亚洲aa中文字幕| 日韩美女一级视频| 欧美一区二区三区不卡| 秋霞久久久久久一区二区| 欧美色视频一区二区三区在线观看| 久久一区二区三区av| 欧美日韩一级片网站| 最近2019中文字幕在线高清| 国产美女久久久久久| 五月婷中文字幕| 在线中文字幕第一页| 午夜一级黄色片| 在线观看欧美日韩| 日韩免费中文字幕| 中文字幕资源网在线观看| 翔田千里亚洲一二三区| 国产精品伦一区二区三区视频| 三上悠亚亚洲一区| 日韩亚洲在线视频| 国产在线一区观看| 99精品欧美| 一区二区三区四区久久| 久久精品一区二区免费播放| 先锋影音成人资源| 欧美一区日本一区韩国一区| 日韩亚洲综合在线| 欧美高清视频在线高清观看mv色露露十八| 韩国av一区二区三区在线观看| 亚洲美女动态图120秒| 国产精品久久久久久在线| 2018高清国产日本一道国产| 国产亚洲自拍av| 久久久久国产免费免费| 国产黄色片视频| 精品国产乱码久久久久久蜜臀网站| 日韩欧美亚洲另类制服综合在线| 久久99久久亚洲国产| 国产日韩欧美一区二区三区综合| 久久66热re国产毛片基地| 日本在线影院| 日韩大胆人体| 精品无人区卡一卡二卡三乱码免费卡| 国产性生活免费视频| 伊人久久综合视频| 天堂在线一二区| 国产成人在线免费观看视频| 色就是色欧美色图| 黄色网页在线观看| 亚洲国产精华液网站w| 欧美国产日韩亚洲一区| 欧美在线三级| 国产又粗又爽| 中文字幕av一区二区三区高| 欧美成人免费在线| 97品白浆高清久久久久久| 在线天堂中文www官网| 久久精品亚洲欧美日韩精品中文字幕| 在线免费黄色| 国产精品极品美女粉嫩高清在线| 国产亚洲精品久久久网站好莱| 好吊的妞视频这里都有| 中文字幕乱在线伦视频中文字幕乱码在线| 91在线观看欧美日韩| 欧美精品tushy高清| 国产剧情久久久久久| 国产一级特黄a大片99| 日韩精品久久久久久免费| 欧美成人免费看| 羞羞视频网站在线免费观看| 可以在线看的av网站| а√天堂资源官网在线资源| 一级视频在线免费观看| 欧美精品无码一区二区三区| 韩国精品一区| 希岛爱理av免费一区二区| 亚洲小说欧美另类激情| 亚洲一区三区在线观看| www.久久久精品| 欧美一级爱爱| 久久久999久久久| 小早川怜子久久精品中文字幕| 亚洲专区一区二区三区| 国产精品三级电影| 91精品欧美福利在线观看| 国产精品久久综合青草亚洲AV| 欧美成人国产一区二区| 久久精品99无色码中文字幕| 日本欧洲一区二区| 精品国产不卡| 日韩精品一区第一页| 亚洲在线精品视频| 中文字幕一区二区三区四区欧美| 性做爰过程免费播放| 成年女人毛片| 欧洲综合视频| 粉嫩av蜜桃av蜜臀av| www.黄色片| 黄动漫视频高清在线| 亚洲天堂开心观看| 色哟哟一区二区在线观看| 日韩高清在线一区二区| 国产ts人妖一区二区| 国产精品国产三级国产三级人妇| 久久人人爽人人爽人人片亚洲| 亚洲成人影院在线观看| 成人自拍偷拍| 国产精品第13页| 老司机色在线视频| 色综合av在线| 国产精品久久久久久久久久久免费看| 四虎精品成人a在线观看| 麻豆一区一区三区四区| 日韩1区2区| 高清国产一区二区三区| 二个人看的毛片| aiai在线| 99久久99久久精品国产片果冰| 在线观看亚洲精品| 干出白浆视频| 91久久在线视频| 亚洲成人免费网站| 精品欧美视频| 亚洲男同性恋视频| 国产美女玉足交| 制服丝袜日韩国产| 久久久999国产| 欧美在线观看日本一区| 亚洲大尺度网站| 中文国语毛片高清视频| 九色|91porny| 欧美永久精品| 国产精品成人aaaaa网站| 欧美电影《睫毛膏》| 欧美色蜜桃97| 91亚洲成人| 亚洲综合视频一区| 欧美粗暴性video| 日韩成人综合| 大桥未久av一区二区三区| 在线看片你懂得| 亚洲图片欧美日韩| 麻豆精品一区二区三区视频| 国产精品一区无码| 成人两性免费视频| www.超碰97.com| 亚洲第一av| 久久久久久久有限公司| 亚洲美免无码中文字幕在线| 四虎成人免费观看在线网址| 亚洲视频一二三四| 无码人妻一区二区三区精品视频| 精品美女在线观看视频在线观看| 亚洲线精品一区二区三区| 欧美在线观看视频免费| 成人h片在线播放免费网站| 久久夜靖品2区| 亚洲欧美另类自拍| 一区二区视频免费在线观看| 成人亚洲欧美一区二区三区| 国产亚洲一区二区在线观看| 激情六月丁香婷婷| 日韩精品一区二区三区中文字幕| 国产一区二区三区亚洲综合| 在线观看视频中文字幕| 一区二区不卡免费视频| 女人高潮特级毛片| 欧美精品电影| 色综合色综合久久综合频道88| 懂色av中文字幕一区二区三区| wwwwxxxxx欧美| 欧美 日本 国产| 精品国产18久久久久久洗澡| 国产一区二区三区不卡免费观看| 亚洲精品一区二区三区不卡| 欧美激情极品| 久久精品一区二区| 丰满人妻一区二区三区53号| 亚洲一区资源| 国产欧美一区二区三区在线| 日本夜爽爽一二区| 亚洲精品久久久久中文字幕欢迎你| 亚洲欧美成人vr|