1: 內建 api 輸出除錯
我們除了用echo,print,print_r, var_dump, var_export
1-1. debug_zval_dump 輸出結果跟 var_dump 類似,唯一增加的乙個值是 refcount,就是記錄乙個變數被引用了多少次,這是 php 的 copy on write (寫時複製) 的機制的乙個重要特點。
1-2. debug_print_backtrace 可以讓我們檢視整個程式的呼叫棧,用來檢視瞬間函式呼叫棧,方便在出錯時檢視執行上下文.
2:錯誤控制和日誌記錄除錯
2-1. php.ini 配置中,跟錯誤相關的選項主要:error_reporting、display_errors、log_errors、error_log 等幾個,這些選項在一般語法級別的除錯是很有幫助的。
3.錯誤丟擲和處理
3-1. 錯誤丟擲和處理主要是說我們在程式中,能夠自己觸發錯誤,或者是自己截獲處理錯誤,類似於物件導向程式設計裡的異常處理 throw 丟擲異常,catch 截獲異常乙個思路。
trigger_error、set_error_handler、set_exception_handler 這三個 api 主要就是處理錯誤丟擲和處理內建函式。
4.firephp 除錯
4-1.firephp 是乙個附加在 firebug 上面的外掛程式,用來除錯 php,操作過程很簡單。在 php 端使用 firephp
提供的 php 日誌記錄類庫來輸出除錯資訊, 在瀏覽器端使用 firebug + firephp 來接收檢視輸出的除錯信
息,這些除錯資訊會直接附加在返回的 http 頭資訊裡, 這些資訊不會被瀏覽器直接顯示, 只會在 firephp 獲
取顯示,有效的達到了除錯和頁面顯示都不衝突的問題。(必須使用 firefox 瀏覽器)
5.ide 除錯
5-1.vim,zend studio,eclipse,netbeans中除錯功能
6.php 效能除錯技術
6-1. 基本上使用 microtime() 這種計算時間的函式就能夠來監測時間,如果使用 time() 之類的函式,統計
時間粒度就太粗了。
7.使用 xdebug 進行效能分析
7-1 使用簡單的時間統計,第乙個需要在**裡增加時間點監控,比較麻煩,有時候我們需要看一段**裡那些函式呼叫是比較消耗時間的,單純的使用時間控制就比較麻煩,這個時候,就可以使用 xdebug 這種性
能分析工具了。
8.apd(advanced php debugger)
8-1.apd 是 advanced php debugger,即高階 php 偵錯程式。是用來給 php **提供規劃與糾錯的能力,
以及提供了顯示整個堆疊追蹤的能力。apd 支援互動式糾錯,但預設是將資料寫入跟蹤檔案。它還提供了
基於事件的日誌, 因此不同級別的資訊 (包括函式呼叫, 引數傳遞,計時等)可以對個別的指令碼開啟或關閉。
9.使用 xhprof 進行效能分析
一般情況下來說,大家都是使用 xdebug,但是 xdebug 太麻煩,需要各種配置,還有複雜的檢視生成
的資料檔案,並且 xdebug 無法再線上使用,因為特別占用 cpu 資源,所以就誕生了 xhprof。xhprof 是
facebook 開源出來的乙個效能測試工具,它比較輕量級,它執行更輕便快速,輸出的資料更容易檢視。
10.php 單元測試技術
phpunit 是乙個輕量級的 php 測試框架。它是在 php5 下面對 junit3 系列版本的完整移植,是 xunit
測試框架家族的一員(它們都基於模式先鋒 kent beck 的設計)。
PHP除錯技術
php 除錯 echo 和echo print r method 指令碼js就是alert方式,或console.log。console.log 原先是 firefox 的 專利 嚴格說是安裝了 firebugs 之後的 firefox 所獨有的除錯 絕招 這一招,ie8 學會了,不過用起來比 fi...
php除錯總結
列印php堆疊資訊 呼叫堆疊函式,查詢呼叫函式的源頭,方便除錯 function print stack trace return html 我在我的資料庫的核心查詢函式裡面呼叫這個方法,列印結果如下 d wamp www meilele includes cls mysql.php 471行,呼叫...
php除錯技術文件
參考資料 php除錯技術手冊 主要是針對目前流行的各種php除錯技術的乙個實驗和總結,所有除錯方法都是在容易部署實現的基礎來進行講解,也希望對php開發者有乙個系統的除錯方法的歸納和使用的幫助。目錄1 內建api輸出除錯 1.1 基本除錯api 1.1.1 echo print 1.1.2 prin...