原理:
1.程序執行的過程中,在相應的地方記錄你想要追蹤的變量及調用棧和每次函數調用的參數,
把這些信息以一定的格式記錄到文件,一個變量一行,具體數據格式請參看代碼,這裡不細講.
2.現在有了每次記錄變量時的所有信息(包括調用棧及參數),當你通過浏覽器訪問這個程序時, 這個程序會把整個文件讀取分析,
在頁面顯示你的所有調試信息,並且它會動態ajax刷新,保持與你的調試同步.
畫個圖吧,要清晰得多.
BackTrace也就是調用棧信息,沒有在圖中體現,是ajax動態刷新的.
功用:
再截幾個本機的圖說明下:
1.包含文件,調試變量(上面是程序,下面是apache_request_headers()的調試輸出)
2.drupal系統某次函數的調用棧列表
3.棧中某個函數的調用參數
後記:
程序基本上實現了調試,追蹤php變量的功能,還附帶了調用棧及調用參數查看功能.
現在echo,print_r,var_dump等系統函數,如非必要時,本人已很少用來調試輸出了,基本上用這個就可以得到想要的東西了.
特別是像drupal這類復雜的系統,能夠清楚地知道程序是怎麼執行的.
說明:
程序是用php4的寫法寫成的,在php4.4.8, 5.2.5上測試過, 理論上是支持php4, php5的.
linux, window, ie6-7, firefox下也都測試過,但還是不敢保證在你的環境下不出錯,如有,請自行修正.
請不讓log文件超過5M大小,浏覽器可能會崩潰的.
下載地址 http://www.jb51.net/codes/20851.html