程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> xdebug遠程調試原理分析

xdebug遠程調試原理分析

編輯:PHP綜合

xdebug可以控制PHP程序的執行,這意味著xdebug可以在任何時候暫停或者恢復正在運行的PHP程序。當PHP程序被暫停的時候,xdebug可以獲取到程序的相關信息,比如變量的值等。xdebug也可以修改一個變量的值,然後再恢復暫停的程序,讓其繼續運行。

xdebug配合IDE進行可視化調試的過程(類似於VisualStudio單步調試)被稱為“遠程調試”,是因為調試時有一個Server(xdebug)和一個Client(IDE),所以在調試的時候,被調試的PHP程序和調試PHP程序的IDE可以不在同一台電腦上。

xdebug在進行遠程調試的時候扮演一個Server的角色,它會在一個指定的端口(默認是9000)等待IDE的連接。目前有2種通信的協議,GDB和DBGp,其中DBGp是DBG的取代協議。IDE在執行調試的時候,給xdebug發送需要執行的命令,xdebug接受到命令後執行,然後將執行的情況和獲得的PHP程序運行信息返回給IDE。現在很多IDE都實現了與xdebug通信的協議,比如Eclipse PDT。

Xdebug遠程調試有2種方式:

1 req:在PHP程序開始執行的時候,xdebug與IDE建立連接。

2 jit:在PHP程序執行到斷點處或者遇到Error的時候,xdebug才與IDE建立連接。

開啟xdebug遠程調試需要通過GET, POST或是cookie的方式傳入一個XDEBUG_SESSION_START變量,XDEBUG_SESSION_START變量的值代表一個session的名稱。通過這種形式,xdebug可以分辨出不同的session。如果要結束一個session可以通過同樣的形式傳入一個XDEBUG_SESSION_STOP。

如果使用Eclipse PDT,你可以不用關心這些參數,Eclipse將會為你搞定這些問題。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved