首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 調試神器 PHPDBG 完整入門指南

     編輯:PHP 相關知識

PHP 調試神器 PHPDBG 完整入門指南

PHPDBG 是 PHP 官方 SAPI 模塊,無需修改代碼、零性能損耗即可實現斷點、單步、變量檢查等調試功能。PHP 5.6+ 內置,5.4/5.5 需手動編譯。

核心特性

  • 單步調試、靈活斷點(類方法、函數、文件:行、opcode、內存地址)
  • 支持 eval() 動態執行代碼、查看當前執行上下文
  • 用戶空間 API、Readline 支持、遠程 Java GUI 調試
  • 可指定 php.ini、JIT 全局變量、Oplog 輸出

安裝步驟

# PHP 5.4/5.5 需手動編譯
cd /home/php/sapi
git clone https://github.com/krakjoe/phpdbg
cd ..
./buildconf --force
./config.nice --enable-phpdbg --with-readline  # 可選 readline
make -j8
make install-phpdbg

注意:PHP 5.6+ 已內置,編譯時僅需 --enable-phpdbg。

基本使用流程

  1. 啟動:phpdbg -e test.php 或進入交互模式後 exec test.php
  2. 查看幫助:help
  3. 設置斷點:
    • 文件:行 b test.php:10
    • 函數 opline b func#2(精確到 opcode 級)
    • 類方法 b Class::method
  4. 查看斷點:info break
  5. 刪除斷點:break del 1
  6. 查看源碼:l f func(函數)、l 10(行號)
  7. 單步執行:s(step into)
  8. 繼續執行:c(continue)
  9. 動態執行代碼:ev $var = 123; var_dump($var);

實戰調試示例

prompt> b func#2
prompt> r
[Breakpoint #0 in func()#2 at ./test.php:18, hits: 1]
>00018: $param = $param + "baba";
00019: echo "function func $param\n";
prompt> s
[L19 0x152ba70 ZEND_ADD_STRING C2 @0 ./test.php]
>0019: echo "function func $param\n";
prompt> ev $param = "debug";
prompt> c

優勢對比

對比 Xdebug:無需 IDE 配置、無性能開銷、適合生產環境快速排查;對比 GDB:專為 PHP 設計、支持 opcode 級斷點、內置 eval 執行。

PHPDBG 是 PHP 開發者工具箱中的「瑞士軍刀」,值得熟練掌握。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved