本项目为 ytrace提供了web ui界面,对应的还有ytrace_chrome_extension.
工作上,有时会需要接手一些旧项目或者熟悉新项目。为了理解项目中的代码逻辑,我们需要不断的调试代码(大部分代码都是dirty but run:-)),通常的调试方式是var_dump/die(低效的),或者使用Xdebug的跟踪、单步调试功能,但觉得这些方式还是不够方便。
于是,开发了这个工具,将跟踪和单步调试结合起来,目前用起来还挺方便的,希望也对你有用。
- 单步调试
- 断点
- 跳转到任意执行过的代码行
- 根据单步历史,往回单步执行
- git clone 当前项目
- composer install
- 在项目的根目录,执行
php -S localhost:8088
默认的,ytrace_gui会通过ini_get获取ytrace.output_dir的值。如果需要的话,你可以通过编辑
index.php
,修改//define('YTRACE_OUTPUT_DIR', '/tmp/ytrace/');
,以设置ytrace的输出目录。
Home 页面: 列出所有的跟踪文件, 通过点击列表中的某行记录打开Source 页面。
- Clear Traces: 删除所有的跟踪文件。
- Refresh: 刷新列表。
- 列表字段说明:
- Sapi: cli, fpm-fcgi 等
- Method: fpm-fcgi中的http 请求方法
- Uri: fpm-fcgi中的http 请求路径及参数
- File: 跟踪文件名
- Size: 跟踪文件大小
- Time: 跟踪文件创建时间
Source Page: 显示跟踪内容详情。
- 左边模块显示源码文件,右边模块显示跟踪到的变量值。
- 只跟踪赋值和函数调用
- ++、--、+=、/=、-=、*=、%=等,显示的值是这些运算符执行之前的值
- PHP 7无法获取到扩展函数的参数名称(无法显示参数名称的会显示为$...)
- 被执行过的代码行,行号会以绿色高亮出来,深绿色表示当前执行所在的行
- 点击高亮的行号,可以将执行跳转至对应行
- ctrl+点击行号,可以设置或取消断点(断点的行号会以红色高亮)
- 执行操作:
- step into: 同gdb
- step back: 根据你的执行历史,往回执行
- step over: 同gdb
- step out: 同gdb
- continue: 同gdb,执行到下一个断点
- reset:重置执行过程
- 快捷键:
- ctrl+o: 打开最新10个跟踪文件的列表浮框
- ctrl+p: 打开被跟踪到的源码文件的列表浮框,只能在Source 页面使用
- ctrl+r: 打开当前显示的源码文件函数/方法的列表浮框,只能在Source 页面使用
- ctrl+b: 打开断点列表浮框,只能在Source 页面使用