有時候,使用php的第三方擴充套件之後,可能會發生一些錯誤,這個時候,可能就需要更底層的方式追蹤除錯程式發生錯誤的地方和原因,熟悉linux下c程式設計的肯定不陌生gdb
首先,使用ulimit -c命令,檢視系統是否會生成 core檔案。
#返回結果可能是0
ulimit -c
當返回結果為0時,說明系統不會生成core檔案,這個時候使用ulimit -c命令改變系統的預設設定
ulimit -c unlimited
#或者
ulimit -c n #n大於0的數字
這樣當程式執行錯的時候,就會把執行過程記錄到core檔案裡面
一般來說,core檔案會在程式執行目錄下生成,檔名類似 core.5740
下面開始使用gdb來除錯
gdb php -c core.5740
#進入之後顯示很多東西,然後不停的 按 輸入 bt回車,檢視執行流程
#在gdb執行環境中,使用php的gdb除錯指令碼,其中/prefix/php-src-dir 是php的原始碼目錄
source /prefix/php-src-dir/.gdbinit
#zbacktrace會更加精確到php的錯誤
zbacktrace
詳細的使用gdb除錯php的文章,可以參考鳥哥的部落格
如何除錯php的core之獲取基本資訊
**:----
在開發過程中,用命令列執行php檔案時,報segmentation fault
,於是到網上求救,大家都說生成乙個core檔案,檢視一下。
什麼是core檔案啊,我不知道啊。
後來才知道 用gdb除錯php時,會把錯誤原因放到core中。
我這是突然報錯誤,無法執行php,經過查詢錯誤原因,定位到了xdebug的問題,是因為昨天安裝了xdebug,導致今天無法執行php .
我把本機的xdebug解除安裝了後,就可以了。贊~
gdb除錯PHP擴充套件錯誤
有時候,使用php的第三方擴充套件之後,可能會發生一些錯誤,這個時候,可能就需要更底層的方式追蹤除錯程式發生錯誤的地方和原因,熟悉linux下c程式設計的肯定不陌生gdb 首先,使用ulimit c命令,檢視系統是否會生成 core檔案 sh 返回結果可能是0 ulimit c當返回結果為0時,說明...
gdb除錯PHP擴充套件錯誤
有時候,使用php的第三方擴充套件之後,可能會發生一些錯誤,這個時候,可能就需要更底層的方式追蹤除錯程式發生錯誤的地方和原因,熟悉linux下c程式設計的肯定不陌生gdb 首先,使用ulimit c命令,檢視系統是否會生成 core檔案。返回結果可能是0 ulimit c當返回結果為0時,說明系統不...
GDB除錯命令以及GDB除錯段錯誤
一 gdb的除錯命令。c語言是 cc g tst.c o tst c 是g g o 生成的檔案 file.cpp c 除錯程式命令 gdb file 啟動,羅列 行數ist 1,break 行數 info break,run r 除錯執行,step s 單步除錯,檢視變數 print p 變數名,檢...