青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

Xdebug是一個開放源代碼的PHP程序調試器

轉載自:http://blog.csdn.net/guoguo1980/article/details/1041725
為什么需要Debugger?
很多PHP程序員調試使用echo、print_r()、var_dump()、printf()等,其實對于有較豐富開發經驗的程序員來說這些也已經足夠了,他們往往可以在程序執行的過程中,通過輸出特定變量的值可以判斷程序執行是否正確,甚至效率高低也可以看出來(當然可能還需要使用一些時間函數)。那么我們為什么還需要一個專門的調試程序來監控我們的程序運行呢? 這個問題的答案不妨留到后面來揭曉。
什么是Xdebug?
Xdebug是一個開放源代碼的PHP程序調試器(即一個Debug工具),可以用來跟蹤,調試和分析PHP程序的運行狀況。Xdebug現在的最新版本是xdebug 2.0.0beta6,支持PHP4/PHP5
官方站點:www.Xdebug.org
如何安裝Xdebug
以PHP5.1.4,Windows平臺為例(其它PHP版本,其它平臺請參看官網文檔):
1. 登錄www.xdebug.org,在首頁右側有一個Windows modules,選擇其中的PHP5.1.2+,下載php_xdebug-5.1.2-2.0.0beta6.dll文件;
2. 將下載的php_xdebug-5.1.2-2.0.0beta6.dll放到C:/php5/ext目錄,重命名為php_xdebug.dll
3. 編輯php.ini,加入下面幾行:
extension=php_xdebug.dll
[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir="I:/Projects/xdebug"
xdebug.profiler_output_dir="I:/Projects/xdebug" 
后面的目錄“I:/Projects/xdebug”為你想要放置Xdebug輸出的數據文件的目錄,可自由設置。
4. 重啟Apache
5. 寫一個test.php,內容為<?php phpinfo(); ?>,如果輸出的內容中有看到xdebug,說明安裝配置成功。

現在我們就可以開始使用Xdebug強大的功能了!

  

作者:Haohappy     

MSN: haohappy at msn.com

Blog: http://blog.csdn.net/haohappy2004

2006-07-04

Go on..現在我們來從最簡單的程序調試開始一步步介紹Xdebug。

調試:

我們先寫一個可以導致執行出錯的程序,例如嘗試包含一個不存在的文件。

testXdebug.php

 

<?php

require_once(‘abc.php’);

?>

 

 

然后通過瀏覽器訪問,我們驚奇地發現,出錯信息變成了彩色的了:

 

不過除了樣式改變,和我們平時打印的出錯信息內容沒什么不同,意義不大。好,我們繼續改寫程序:

 

 

testXdebug2.php

 

<?php

testXdebug();

function testXdebug() {

       require_once('abc.php');

}

?>

 

輸出信息:

 

發現了什么? Xdebug跟蹤代碼的執行,找到了出錯的函數testXdebug()

 

 

我們把代碼再寫得復雜一些: 

testXdebug3.php

<?php

testXdebug();

function testXdebug() {

       requireFile();    

}

function requireFile() {

       require_once('abc.php');

}

?>

輸出信息:

呵呵,也就是說Xdebug具有類似于JavaException的“跟蹤回溯”的功能,可以根據程序的執行一步步跟蹤到出錯的具體位置,哪怕程序中的調用很復雜,我們也可以通過這個功能來理清代碼關系,迅速定位,快速排錯。

作者:Haohappy     

MSN: haohappy at msn.com

Blog: http://blog.csdn.net/haohappy2004

2006-07-04

其實PHP函數debug_backtrace()也有類似的功能,但是要注意debug_backtrace()函數只在PHP4.3.0之后版本及
PHP5中才生效。這個函數是PHP開發團隊在PHP5中新增的函數,然后又反向移植到PHP4.3中。
如何利用Xdebug使調試信息更加美觀?
Xdebug擴展加載后,Xdebug會對原有的某些PHP函數進行覆寫,以便好更好地進行Debug。比如var_dump()函數,我們知道通常我們需要在函數前后加上”<pre>…</pre>”才能夠讓輸出的變量信息比較美觀、可讀性好。但是加載了Xdebug后,我們不再需要這樣做了,Xdebug不但自動給我們加上了<pre>標簽,還給變量加上顏色。
例:
<?php
$arrTest=array(
       "test"=>"abc",
       "test2"=>"abc2"
);
var_dump($arrTest);
?>
輸出:
看到了嗎? 數組元素的值自動顯示顏色。
如何利用Xdebug測試腳本執行時間
測試某段腳本的執行時間,通常我們都需要用到microtime()函數來確定當前時間。例如PHP手冊上的例子:
<?php
/**
* Simple function to replicate PHP 5 behaviour
*/
function microtime_float()
{
    list(
$usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();
// Sleep for a while
usleep(100);
$time_end = microtime_float();
$time = $time_end - $time_start;
echo 
"Did nothing in $time seconds/n";
?>
但是microtime()返回的值是微秒數及絕對時間戳(例如“0.03520000 1153122275),沒有可讀性。所以如上程序,我們需要另外寫一個函數microtime_float(),來將兩者相加。
Xdebug自帶了一個函數xdebug_time_index()來顯示時間。
如何測定腳本占用的內存?
有時候我們想知道程序執行到某個特定階段時到底占用了多大內存,為此PHP提供了函數memory_get_usage()。這個函數只有當PHP編譯時使用了--enable-memory-limit參數時才有效。 
Xdebug同樣提供了一個函數xdebug_memory_usage()來實現這樣的功能,另外xdebug還提供了一個xdebug_peak_memory_usage()函數來查看內存占用的峰值。
如何檢測代碼中的不足?
有時候代碼沒有明顯的編寫錯誤,沒有顯示任何錯誤信息(如errorwarningnotice等),但是這不表明代碼就是正確無誤的。有時候可能某段代碼執行時間過長,占用內存過多以致于影響整個系統的效率,我們沒有辦法直接看出來是哪部份代碼出了問題。這時候我們希望把代碼的每個階段的運行情況都監控起來,寫到日志文件中去,運行一段時間后再進行分析,找到問題所在。
回憶一下,之前我們編輯php.ini文件
加入
[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir="I:/Projects/xdebug"
xdebug.profiler_output_dir="I:/Projects/xdebug" 
這幾行,目的就在于把執行情況的分析文件寫入到I:/Projects/xdebug”目錄中去(你可以替換成任何你想設定的目錄)。如果你執行某段程序后,再打開相應的目錄,可以發現生成了一堆文件,例如cachegrind.out.1169585776這種格式命名的文件。這些就是Xdebug生成的分析文件。用編輯器打開你可以看到很多程序運行的相關細節信息,不過很顯然這樣看太累了,我們需要用圖形化的軟件來查看。
Windows平臺下,可以用WinCacheGrind(*我修改的*下載地址http://sourceforge.net/projects/wincachegrind/)這個軟件來打開這些文件。可以直觀漂亮地顯示其中內容:
哇,非常漂亮,我們很直觀地看到index.php中我們調用了一個函數testXdebug()testXdebug()中又調用了requireFile()函數。這樣我們就可以非常方便地查看整個腳本的程序結構。
另外,我們還可以看到每個函數被調用的次數及執行所花費的時間!這對于測試程序性能非常有用。
好了,這么一個簡單的程序不太能顯示出Xdebug+WinCacheGrind的強大,我給出一個稍大點的例子(一個基于Zend FrameworkCMSindex.php):
從上圖可以看到:整個程序的結構,每個函數被調用的次數,執行時間都一目了然。
小結:
Xdebug提供了各種自帶的函數,并對已有的某些PHP函數進行覆寫,可以方便地用于調試排錯;Xdebug還可以跟蹤程序的運行,通過對日志文件的分析,我們可以迅速找到程序運行的瓶頸所在,提高程序效率,從而提高整個系統的性能。



posted on 2014-06-15 09:59 楊粼波 閱讀(412) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲人被黑人高潮完整版| 久久蜜桃精品| 免费久久99精品国产自| 欧美在线播放一区| 性色av一区二区三区在线观看| 亚洲制服丝袜在线| 欧美影院午夜播放| 麻豆精品精华液| 亚洲国产精品高清久久久| 亚洲国产视频一区| 亚洲性夜色噜噜噜7777| 性久久久久久久久| 欧美a级片一区| 欧美三级小说| 国产有码在线一区二区视频| 亚洲第一福利视频| 中文日韩在线| 久久亚洲综合| 亚洲日本一区二区三区| 先锋a资源在线看亚洲| 免费在线欧美视频| 国产精品日韩在线| 在线免费观看日韩欧美| 亚洲一区二区三区在线视频| 久久免费视频一区| 日韩午夜精品视频| 久久久久久久国产| 国产精品久久影院| 亚洲狼人精品一区二区三区| 欧美资源在线| 日韩一级二级三级| 久久综合一区| 国产日韩欧美在线| 一区二区三区四区精品| 免费国产一区二区| 亚洲一区免费网站| 欧美啪啪成人vr| 欧美日韩国产区| 91久久精品美女高潮| 亚洲一区二区av电影| 毛片一区二区| 亚洲综合日韩| 欧美日韩久久精品| 亚洲第一在线综合网站| 欧美中文字幕视频在线观看| 最新亚洲一区| 久久人人97超碰人人澡爱香蕉| 国产精品草莓在线免费观看| 最新国产成人在线观看| 久久综合激情| 欧美综合国产精品久久丁香| 国产精品免费看| 亚洲午夜激情在线| 亚洲精品少妇30p| 欧美搞黄网站| 亚洲国产高清视频| 久久人人97超碰精品888| 亚洲无吗在线| 国产精品免费观看视频| 亚洲视频在线看| 99ri日韩精品视频| 欧美日韩亚洲激情| 国产精品99久久久久久久vr| 亚洲国产精品嫩草影院| 免费永久网站黄欧美| 亚洲人精品午夜| 亚洲高清视频中文字幕| 免费永久网站黄欧美| 亚洲精品国产精品国产自| 欧美成人午夜激情视频| 美女国产一区| 日韩一级欧洲| 亚洲午夜精品一区二区| 国产欧美一区二区精品性色| 久久成人精品一区二区三区| 欧美一区二区三区在线免费观看| 国产日韩欧美高清免费| 久久久久久久久伊人| 久久久欧美一区二区| 亚洲三级免费电影| 在线视频精品一区| 国产日韩精品久久| 欧美不卡一卡二卡免费版| 欧美91大片| 亚洲欧美日韩国产中文| 久久国产福利| 亚洲精品在线视频| 亚洲永久免费观看| 亚洲大胆人体视频| 一本久久综合| 一区二区三区无毛| 亚洲精品日韩在线观看| 国产日韩欧美a| 欧美激情bt| 国产精品亚洲成人| 欧美电影资源| 国产精品亚洲激情| 亚洲大片免费看| 国产精品超碰97尤物18| 欧美日韩dvd在线观看| 一区二区三区中文在线观看| 亚洲国产精品va在看黑人| 欧美视频导航| 免费影视亚洲| 国产精品日韩在线播放| 欧美成人高清视频| 国产日本欧美一区二区三区在线| 麻豆精品视频在线观看| 国产精品v亚洲精品v日韩精品| 久久久久久噜噜噜久久久精品| 欧美福利视频在线观看| 久久久久久久久久久一区 | 国产精品成人v| 美腿丝袜亚洲色图| 国产精品私拍pans大尺度在线| 欧美大片免费久久精品三p| 国产精品伊人日日| 日韩一级大片在线| 亚洲精品在线观看视频| 久久看片网站| 久久阴道视频| 国产精品午夜春色av| 亚洲精品在线视频观看| 亚洲高清一区二| 久久久久久一区| 久久婷婷国产综合国色天香| 国产精品久久久久久久久搜平片| 亚洲人成免费| 亚洲人久久久| 欧美成人在线免费视频| 欧美承认网站| 亚洲国产毛片完整版 | a91a精品视频在线观看| 女人天堂亚洲aⅴ在线观看| 噜噜噜噜噜久久久久久91| 国产日韩欧美中文在线播放| 中文精品在线| 亚洲欧美国产制服动漫| 欧美日韩亚洲一区二| 日韩视频精品在线| 亚洲一级黄色片| 欧美午夜精品久久久久久人妖| 亚洲精品一区二区三区樱花| 一本久久综合亚洲鲁鲁| 欧美日韩精品综合| 亚洲小说春色综合另类电影| 午夜日韩在线观看| 国产亚洲人成a一在线v站| 久久av红桃一区二区小说| 美女视频黄a大片欧美| 91久久黄色| 欧美日韩在线一区二区| 亚洲永久精品国产| 久久综合久久综合久久综合| 伊人蜜桃色噜噜激情综合| 美女尤物久久精品| 亚洲精品国产品国语在线app| 一区二区三区欧美视频| 国产精品丝袜白浆摸在线| 久久成人精品| 亚洲精品在线看| 欧美无乱码久久久免费午夜一区| 欧美在线播放视频| 狠狠色丁香婷综合久久| 玖玖在线精品| 在线综合亚洲欧美在线视频| 欧美中文字幕第一页| 激情综合自拍| 欧美激情精品久久久久久蜜臀| 夜夜嗨av一区二区三区免费区| 性做久久久久久免费观看欧美| 永久免费毛片在线播放不卡| 欧美日本中文| 久久精品99国产精品日本| 亚洲激情国产精品| 久久精品日韩一区二区三区| 亚洲欧洲午夜| 国产欧美一区二区精品性 | 国产精品国产a级| 久久精品中文| 一区二区三区视频在线| 蜜臀久久久99精品久久久久久 | 亚洲激情在线激情| 欧美在线播放高清精品| 99精品欧美一区| 狠狠干狠狠久久| 国产精品v欧美精品v日韩精品| 久久一二三区| 欧美一级久久久久久久大片| 亚洲伦伦在线| 欧美激情第五页| 久久精品九九| 亚洲伊人第一页| 亚洲精品五月天| 亚洲国产成人tv| 国内揄拍国内精品少妇国语| 国产精品久久国产精品99gif| 欧美ab在线视频| 免费在线观看日韩欧美| 久久精品亚洲乱码伦伦中文 |