2010-04-11 66 views
2

我想使用GDB來檢查構成php.so Apache擴展的C++代碼。我想知道PHP在運行PHP應用程序時正在做什麼。最好我會在LAMP系統上使用像Netbeans或Eclipse這樣的IDE。使用GDB調試PHP解釋器

回答

5
  1. 你想要得到的mod_php調試版本你的手(用符號)或build your ownconfigure --enable-debug
  2. 您應該配置你的Apache始終保持只有一個工作進程實例了(這將是該實例您調試),也就是設置MinSpareServersMaxSpareServersStartServers全部爲1同時確保任何超時參數慷慨設置
  3. Use gdbany graphical interface to gdb(如dddEclipse CDT)附加到唯一的Apache工作進程。在其中一個PHP源代碼中插入一個斷點並繼續。
  4. 將瀏覽器指向您的網絡服務器並訪問PHP頁面。你的斷點會觸發。如果您想要在執行PHP腳本的特定時刻喚醒調試器,請從PHP生成SIGTRAPgdb通常會對您產生影響。

玩得開心!

0

也許你可以在windows上做到這一點。

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

然後,你將不得不運行apache,然後運行該過程。

爲了讓你自己有時間在瀏覽PHP/Apache的同時連接瀏覽器,請在PHP腳本中添加一個睡眠呼叫。如果你ps,你會看到進程處於睡眠狀態。或者你可以讓它在進行睡眠之前將其進程ID寫入tmp中的一個文件中。