gdb除錯PHP擴充套件錯誤

2021-09-08 17:59:06 字數 1004 閱讀 8221

有時候,使用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 變數名,檢...