|
1.程序執(zhí)行的過程中,在相應(yīng)的地方記錄你想要追蹤的變量及調(diào)用棧和每次函數(shù)調(diào)用的參數(shù),
把這些信息以一定的格式記錄到文件,一個(gè)變量一行,具體數(shù)據(jù)格式請(qǐng)參看代碼,這里不細(xì)講.
2.現(xiàn)在有了每次記錄變量時(shí)的所有信息(包括調(diào)用棧及參數(shù)),當(dāng)你通過瀏覽器訪問這個(gè)程序時(shí), 這個(gè)程序會(huì)把整個(gè)文件讀取分析,
在頁(yè)面顯示你的所有調(diào)試信息,并且它會(huì)動(dòng)態(tài)ajax刷新,保持與你的調(diào)試同步.
畫個(gè)圖吧,要清晰得多.
BackTrace也就是調(diào)用棧信息,沒有在圖中體現(xiàn),是ajax動(dòng)態(tài)刷新的.
功用:
再截幾個(gè)本機(jī)的圖說(shuō)明下:
1.包含文件,調(diào)試變量(上面是程序,下面是apache_request_headers()的調(diào)試輸出)
2.drupal系統(tǒng)某次函數(shù)的調(diào)用棧列表
3.棧中某個(gè)函數(shù)的調(diào)用參數(shù)
后記:
程序基本上實(shí)現(xiàn)了調(diào)試,追蹤php變量的功能,還附帶了調(diào)用棧及調(diào)用參數(shù)查看功能.
現(xiàn)在echo,print_r,var_dump等系統(tǒng)函數(shù),如非必要時(shí),本人已很少用來(lái)調(diào)試輸出了,基本上用這個(gè)就可以得到想要的東西了.
特別是像drupal這類復(fù)雜的系統(tǒng),能夠清楚地知道程序是怎么執(zhí)行的.
說(shuō)明:
程序是用php4的寫法寫成的,在php4.4.8, 5.2.5上測(cè)試過, 理論上是支持php4, php5的.
linux, window, ie6-7, firefox下也都測(cè)試過,但還是不敢保證在你的環(huán)境下不出錯(cuò),如有,請(qǐng)自行修正.
請(qǐng)不讓log文件超過5M大小,瀏覽器可能會(huì)崩潰的.
下載地址 http://www.jb51.NET/codes/20851.html
php技術(shù):PHPLog php 程序調(diào)試追蹤工具,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。