php斷點調試工具------NetBeans+Xdebug調試php方法(測試成功)


@原文url:http://www.cnblogs.com/dcb3688/p/4608015.html

@netbeans官方調試php代碼說明:https://netbeans.org/kb/docs/php/debugging_zh_CN.html

  個人認為,對有有經驗的程序員,使用echo、print_r()、print_f()、var_dump()等函數足以調試php代碼,如果你不喜歡這樣的話,xdebug就是一個非常好的php調試工具。對於不熟悉的代碼,可以用Xdebug一步一步的查看請求過程和代碼執行過程。

  准備工作

  本地部署的server環境,推薦用phpStudy(內置xdebug),開啟php擴展就可以了,不用單獨下載xdebug。

  下載與php版本對應的xdebug:http://www.xdebug.org

  配置以下三處

  一,配置php.ini,需注意是否是使用集成環境。找到相應的php.ini,例如下邊是phpStudy的php5.3的php.ini,其中黑色部分是系統默認的,紅色是手動添加的。

[XDebug]
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir ="D:\phpStudy\tmp\xdebug"
xdebug.trace_output_dir ="D:\phpStudy\tmp\xdebug"
xdebug.profiler_output_name = "cache.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
zend_extension="D:\phpStudy\php\php-5.3.29-nts\ext\php_xdebug.dll"
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9001  //這里配置為9001,為什么,后邊有講解
xdebug.idekey=netbeans-xdebug

 

  二,重啟apache服務器,查看phpinfo()里邊是否有xdebug,記錄下idekey(我的是netbeans-xdebug)。

    這一步非常重要,因為坑就在這。。。

    但當我們NetBeans調試php時,一直提示“等待NetBeans連接xdebug

    所以,我們要使用命令行查看已經加載的模塊,查看xdebug是否正確加載

    在命令行下輸入php -m

    當提示:PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0

    

    意思就是xdebug必須加載到zend modules的擴展中

    extension意為基於php引擎的擴展

    zend_extension意為基於zend引擎的擴展

    所以 正確的方法是

    zend_extension=php_xdebug-2.4.1-7.0-vc14-nts.dll

    在php.ini 中還要設置

    output_buffering = Off

 

  

  三,配置NetBeans

    在NetBeans的 工具-選項-php 中配置(NetBeans版本8.2)

    1,工具-選項-常規,web瀏覽器設置為Firefox,無代理,然后測試連接。

    2,工具-選項-php-常規,php5解釋器選擇php.exe路徑(例如:D:\phpStudy\php\php-5.3.29-nts\php.exe)

    3,工具-選項-php-調試器端口(9001,和上邊php.ini保持一致),會話ID:netbeans-xdebug(和上邊php.ini中的xdebug.idekey保持一致

    

    在這里面也有個

    就是調試器端口, 網上一般都是9000,但是有沒有考慮用Nginx的感受,在用nginx作為服務器代理的時候,nginx一般使用的就是9000

    這就是為什么我們在配置php的xdebug時候使用9001端口, (php.ini 中的端口要與NetBeans中的調試器端口一致)

    會話ID 與 xdebug.idekey 保持一致

    不然同樣提示:等待NetBeans連接xdebug

 

  四,最好重啟下netbeans,再開始調試。

  配置都保存了之后,還是連接失敗的話,就重啟一下netbeans吧。很多人都知道,該了PHP.INI要重啟服務器。但是沒想過netbeans的有些配置改了之后,也要重啟才能生效。

 

  五,開始調試

  ---注意,只有在netbeans中新建的項目,才可以進行調試。並且進行了如下配置的。

  

  ---選擇默認的本地web站點即可

  

  ---新建完成導入后,打開項目

  打開項目,然后選擇 菜單-調試-調試項目,一般會在默認瀏覽器中彈出http://localhost/weiqing/index.php?XDEBUG_SESSION_START=netbeans-xdebug,后邊紅色參數是xdebug參數,必須要有。  

  !!!重點!!!如果想單獨調試某個url頁面,在頁面后面加上這個參數?XDEBUG_SESSION_START=netbeans-xdebug或者& XDEBUG_SESSION_START=netbeans-xdebug,然后打開就能開始調試了。

  1,經常用到的就是F7(步入,逐行執行腳本,一行一行的調試代碼),F5(繼續,跳的代碼比較多),ctrl+F7(步出,跳出當前函數或者類),具體可以參考官方文檔。

  ---使用調試器工具欄

  

  2,在下邊可以監視變量的值,和斷點數量。

  

 

@注意問題

  1,調試過程中,有時候中間會報錯(套接字異常等),跳出調試。所以調試過程中,在重要地方設置斷點,這樣即使跳出了,也可以重新調試並快速調試到設置斷點地方。

  2,有時候會出現等待連接netbeans xdebug或者NetBeans-xdebug正在連接情況,重啟下netbeans即可解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM