Xdebug在windows上的安裝與結(jié)合phpstrom進(jìn)行斷點(diǎn)調(diào)試

Xdebug是一個(gè)PHP擴(kuò)展,可以幫助我們PHP開發(fā)人員更方便地對PHP代碼進(jìn)行調(diào)試;它有許多強(qiáng)大的功能,其中包括:
所以我們可以通過Xdebug結(jié)合PHP比較熱門的IDE工具PHPstorm對我們的代碼進(jìn)行斷點(diǎn)調(diào)試,以方便我們分析框架源碼,找出bug,分析代碼性能瓶頸等等。具體效果如下:
image.png
本文將為大家介紹如何在Windows上安裝它,以及配置phpstorm,在上面進(jìn)行斷點(diǎn)調(diào)試。

一、Xdebug在window上的安裝

1,登錄官網(wǎng)下載與自己PHP版本相對應(yīng)的xdebug擴(kuò)展

注意與安裝其他PHP擴(kuò)展相似,必須下載跟自己PHP版本一致的擴(kuò)展;所以我們可以把自己的phpinfo的全部內(nèi)容Ctrl+A全選,Ctrl+C復(fù)制到xdebug分析工具(https://xdebug.org/wizard)上面,然后點(diǎn)擊分析,就能得到與你PHP版本相對于的xdebug擴(kuò)展了,直接下載。

image.png

2,把下載好的擴(kuò)展移動(dòng)到自己的PHP目錄下的ext文件夾中
image.png
3,修改php配置文件 php.ini,添加如下配置,部分配置可按需增刪
;指定Xdebug擴(kuò)展文件的絕對路徑 
zend_extension = D:\phpstudy\Extensions\php\php7.3.4nts\ext\php_xdebug-2.9.8-7.3-vc15-nts-x86_64.dll
;啟用性能檢測分析  
xdebug.profiler_enable=On
;啟用代碼自動(dòng)跟蹤  
xdebug.auto_trace=On
;允許收集傳遞給函數(shù)的參數(shù)變量  
xdebug.collect_params=On
;允許收集函數(shù)調(diào)用的返回值 
xdebug.collect_return=On
;指定堆棧跟蹤文件的存放目錄 
xdebug.trace_output_dir="D:\phpstudy\Extensions\tmp\xdebug"
;指定性能分析文件的存放目錄 
xdebug.profiler_output_dir="D:\phpstudy\Extensions\tmp\xdebug"
xdebug.profiler_output_name=cachegrind.out.%p
xdebug.remote_enable=On
xdebug.remote_port=19000
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.var_display_max_depth=10
xdebug.idekey= PHPSTROM
4,重啟WebServer(Apache或Nginx等),再次打開phpinfo,Ctrl+F搜索:xdebug,如果搜索到該擴(kuò)展,則證明安裝成功
image.png

二、配置phpstorm

1,在【File】->【Settings】->【Languages & Frameworks】->【PHP】的servers中配置xdebug服務(wù),添加如下配置:
image.png
2,在【File】->【Settings】->【Languages & Frameworks】->【PHP】->【Debug】中配置 debug port 為php.ini中配置的xdebug.remote_port。
image.png
3,打開【run】--【Edit configurations】添加配置:
image.png
4,單擊行號與代碼之間的空白處,即可設(shè)置斷點(diǎn)。開啟debug監(jiān)聽,點(diǎn)擊綠色的開始按鈕或者旁邊的甲殼蟲即可開始調(diào)試。
image.png
5,開始調(diào)試后,下方就會展示出調(diào)試數(shù)據(jù),可以瀏覽到腳本執(zhí)行到當(dāng)前斷點(diǎn)時(shí),各個(gè)變量的值,對應(yīng)的代碼旁邊也有展示各個(gè)值,可以清楚知道當(dāng)前變量的值是什么。點(diǎn)擊右下角綠色的繼續(xù)按鈕,即可跳到下一個(gè)斷點(diǎn)。
image.png
到此,Xdebug的安裝使用就介紹完了,所謂工欲善其事,必先利其器。它還有其他很多功能幫助我們?nèi)粘i_發(fā)調(diào)試,例如很多方便的函數(shù),我們直接調(diào)用就能得出:
  • xdebug_time_index()返回自腳本開始以來的當(dāng)前時(shí)間索引(以秒為單位)。
  • xdebug_peak_memory_usage() 返回到目前為止腳本使用的最大內(nèi)存量。
  • xdebug_get_stack_depth() 返回堆棧深度級別。
等等這些結(jié)果,方便我們?nèi)フ{(diào)試,其他更多函數(shù)與更多用法請參考官方文檔,大神們可以直接啃英文文檔,像我這樣的菜鳥也可以用谷歌翻譯:
image.png

但是還是要慢慢適應(yīng)英文文檔的,嗯,打工人,耗子尾汁。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容