我想使用GDB來檢查構成php.so Apache擴展的C++代碼。我想知道PHP在運行PHP應用程序時正在做什麼。最好我會在LAMP系統上使用像Netbeans或Eclipse這樣的IDE。使用GDB調試PHP解釋器
2
A
回答
5
- 你想要得到的
mod_php
調試版本你的手(用符號)或build your own(configure --enable-debug
) - 您應該配置你的Apache始終保持只有一個工作進程實例了(這將是該實例您調試),也就是設置
MinSpareServers
,MaxSpareServers
和StartServers
全部爲1同時確保任何超時參數慷慨設置 - Use
gdb
或any graphical interface togdb
(如ddd
或Eclipse CDT)附加到唯一的Apache工作進程。在其中一個PHP源代碼中插入一個斷點並繼續。 - 將瀏覽器指向您的網絡服務器並訪問PHP頁面。你的斷點會觸發。如果您想要在執行PHP腳本的特定時刻喚醒調試器,請從PHP生成
SIGTRAP
,gdb
通常會對您產生影響。
玩得開心!
0
也許你可以在windows上做到這一點。
但是,最好的選擇是在Unix機器上執行此操作。您必須在啓用調試的情況下編譯所有內容。 GDB將需要訪問這些目錄的源代碼。
然後,你將不得不運行apache,然後運行該過程。
爲了讓你自己有時間在瀏覽PHP/Apache的同時連接瀏覽器,請在PHP腳本中添加一個睡眠呼叫。如果你ps,你會看到進程處於睡眠狀態。或者你可以讓它在進行睡眠之前將其進程ID寫入tmp中的一個文件中。
相關問題
- 1. 使用gdb調試回調
- 2. GDB調試信息解析器/說明
- 3. 用gdb調試
- 4. 使用GDB調試模板
- 5. 使用gdb來調試C++
- 6. 使用gdb調試pthreads
- 7. 使用gdb調試qemu
- 8. 使用gdb調試conio.h
- 9. 如何使用GDB調試
- 10. 使用GDB調試Android
- 11. 使用GDB調試iPhone
- 12. 使用GDB進行調試
- 13. 使用gdb調試Java .jar
- 14. 使用gdb調試llvm pass
- 15. 使用GDB調試進程
- 16. 解釋GDB寄存器(SSE寄存器)
- 17. 解釋gdb回溯
- 18. 解釋gdb輸出
- 19. gdb/mi gdb服務器調試
- 20. 當沒有調試符號加載時,gdb如何解釋`main`?
- 21. GDB Vs LLDB調試器
- 22. 用gdb調試C
- 23. PHP:如何調整PHPUnit以使用不同的PHP解釋器?
- 24. 使Qt調試器正常工作(GDB)
- 25. 如何更改gdb使用的Python解釋器?
- 26. Perl:調試解釋器失敗?
- 27. 如何使用JUnit測試解釋器?
- 28. 如何解釋GDB回溯?
- 29. 解釋GDB分段錯誤
- 30. GDB輸出的解釋