簡體   English   中英

使用GDB調試PHP解釋器

[英]Debug the PHP interpreter with GDB

我想使用GDB逐步組成php.so Apache擴展的C ++代碼。 我想看看PHP在運行PHP應用程序時在做什么。 最好在LAMP系統上使用Netbeans或Eclipse之類的IDE。

  1. 您想使用mod_php調試版本(帶符號)或構建自己 configure --enable-debug 版本configure --enable-debug
  2. 您應該將Apache配置為始終始終保持一個工作進程實例(這將是您調試的實例),即,將MinSpareServersMaxSpareServersStartServers全部設置為1。還要確保適當地設置了任何超時參數
  3. 使用gdb任何圖形界面gdb (如dddEclipse CDT的 )附着到一個且僅Apache的工作進程。 在PHP源代碼等之一中添加斷點,然后繼續。
  4. 將瀏覽器指向網絡服務器,然后訪問PHP頁面。 您的斷點將觸發。 如果要在PHP腳本執行的特定時刻喚醒調試器,請從PHP生成SIGTRAP ,而gdb通常會迫使您執行。

玩得開心!

也許您可以在Windows上執行此操作。

但是,最好的選擇是在Unix機器上執行此操作。 您將必須在啟用調試的情況下編譯所有內容。 GDB將需要訪問這些目錄作為源。

然后,您將必須運行apache,然后運行該過程。

為了讓您有時間在使用瀏覽器訪問PHP / Apache時進行附加,請在PHP腳本中添加sleep調用。 如果您是ps,您將看到該過程處於睡眠狀態。 或者,您可以讓它在休眠之前將其進程ID寫入tmp中的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM