[英]Debug the PHP interpreter with GDB
我想使用GDB逐步組成php.so Apache擴展的C ++代碼。 我想看看PHP在運行PHP應用程序時在做什么。 最好在LAMP系統上使用Netbeans或Eclipse之類的IDE。
mod_php
調試版本(帶符號)或構建自己 configure --enable-debug
版本 ( configure --enable-debug
) MinSpareServers
, MaxSpareServers
和StartServers
全部設置為1。還要確保適當地設置了任何超時參數 gdb
或任何圖形界面gdb
(如ddd
或Eclipse CDT的 )附着到一個且僅Apache的工作進程。 在PHP源代碼等之一中添加斷點,然后繼續。 SIGTRAP
,而gdb
通常會迫使您執行。 玩得開心!
也許您可以在Windows上執行此操作。
但是,最好的選擇是在Unix機器上執行此操作。 您將必須在啟用調試的情況下編譯所有內容。 GDB將需要訪問這些目錄作為源。
然后,您將必須運行apache,然后運行該過程。
為了讓您有時間在使用瀏覽器訪問PHP / Apache時進行附加,請在PHP腳本中添加sleep調用。 如果您是ps,您將看到該過程處於睡眠狀態。 或者,您可以讓它在休眠之前將其進程ID寫入tmp中的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.