phpdbg是一个用于在命令行界面中进行 PHP 代码调试的工具。它提供了一种方便的方式来调试 PHP 脚本,用户可以通过命令行交互式界面逐行执行代码、设置断点、检查变量内容等操作,可以有效提高 PHP 应用程序的开发和调试效率。
一、phpdbg特点
作为 SAPI 模块实现,phpdbg 可以在不影响代码功能或性能的情况下完全控制运行环境,旨在成为一个轻量级、功能强大且易于使用的 PHP 调试平台,具有以下特点:
1、逐步调试功能;
2、灵活的断点设置(包括类方法、函数、文件行、地址和操作码);
3、使用内置的 eval() 函数轻松访问 PHP;
4、用户空间 API;
5、与 SAPI 无关,易于集成;
6、支持 PHP 配置文件;
7、JIT Super Globals – 可自定义设置;
8、可选的读取线支持,提供舒适的终端操作体验。
二、命令行选项
命令行选项如下表:
选择 | 示例参数 | 描述 |
---|---|---|
-c | -c/my/php.ini | 设置要加载php.ini文件 |
-d | -dmemory_limit=4G | 设置php.ini指令 |
-n | 禁用默认php.ini | |
-q | 禁止显示欢迎横幅 | |
-在 | 启用 oplog 输出 | |
-b | 禁用颜色 | |
-我 | -imy.init | 设置 .phpdbginit 文件 |
-我 | 忽略默认的 .phpdbginit | |
-或 | -Omy.oplog | 设置 oplog 输出文件 |
-r | 运行执行上下文 | |
-rr | 运行执行上下文并在执行后退出(不考虑断点) | |
-和 | 为调试器/探查器生成扩展信息 | |
-和 | 启用逐步评估,小心! | |
-秒 | -s=, -s=foo | 使用可选分隔符从 stdin 读取要执行的代码 |
-小号 | -Scli公司 | 覆盖 SAPI 名称,小心! |
|
||
-l | -L4000型 | 设置远程控制台端口 |
-一个 | -a192.168.0.3 | 设置远程控制台绑定地址 |
-x | 启用 xml 输出(而不是普通文本输出) | |
-p | -p, -p=函数, -p* | 输出操作码并退出 |
-h | 打印帮助概览 | |
-在 | 打印版本号 | |
— | — arg1 arg2 | 用于分隔 phpdbg 参数和 php $argv;在它后面附加任何$argv参数 |
三、预定义常量
下列常量由此扩展定义,且仅在此扩展编译入 PHP 或在运行时动态载入时可用:
- PHPDBG_VERSION (string)
- PHPDBG_FILE (int):Removed as of PHP 7.3.0.
- PHPDBG_METHOD (int):Removed as of PHP 7.3.0.
- PHPDBG_LINENO (int):Removed as of PHP 7.3.0.
- PHPDBG_FUNC (int):Removed as of PHP 7.3.0.
- PHPDBG_COLOR_PROMPT (int)
- PHPDBG_COLOR_NOTICE (int)
- PHPDBG_COLOR_ERROR (int)
四、phpdbg函数
1、phpdbg_break_file
phpdbg_break_file代表在文件中的一行处插入断点,使用方法:
phpdbg_break_file(string $file, int $line): void
在指定文件的指定行插入断点。
2、phpdbg_break_function
phpdbg_break_function代表在函数入口处插入断点,使用方法:
phpdbg_break_function(string $function): void
在给定函数的入口处插入一个断点。
3、phpdbg_break_method
phpdbg_break_method代表在方法入口处插入断点,使用方法:
phpdbg_break_method(string $class, string $method): void
在给定.方法类的给定入口处插入断点。
4、phpdbg_break_next
phpdbg_break_next代表在下一个操作码处插入断点,使用方法:
phpdbg_break_next(): void
在下一个操作码处插入断点。
5、phpdbg_clear
phpdbg_clear代表清除所有断点,使用方法:
phpdbg_clear(): void
清除通过 phpdbg_break_*() 函数或控制台交互设置的所有断点。
6、phpdbg_color
phpdbg_color代表设置某些元素的颜色,使用方法:
phpdbg_color(int $element, string $color): void
设置指定元素的颜色。
7、phpdbg_end_oplog
phpdbg_end_oplog使用方法:
phpdbg_end_oplog(array $options = []): ?array
8、phpdbg_exec
phpdbg_exec代表尝试设置执行上下文,使用方法:
phpdbg_exec(string $context): string|bool
9、phpdbg_get_executable
phpdbg_get_executable使用方法:
phpdbg_get_executable(array $options = []): array
10、phpdbg_prompt
phpdbg_prompt代表设置命令提示符,使用方法:
phpdbg_prompt(string $string): void
将命令提示符设置为给定的字符串。
11、phpdbg_start_oplog
phpdbg_start_oplog使用方法:
phpdbg_start_oplog(): void