SDB
SDB 是一款使用 PHP 编写的协程调试器工具。
- 使用简单,只需要一行代码即可开启;
- 无需端口,可直接运行在 TTY 上;
- 零成本,可在生产环境使用,不影响性能;
- 功能强大,深度定制,量身打造类微型操作系统;
使用
只需要在你的代码当中加入一行代码:
\Swow\Debug\Debugger\Debugger::runOnTTY();
在终端中启动运行时加上-e
:
php -e -d extension=swow index.php
你就会在终端上得到这样的输出:
____ ____ ____
/ ___| | _ \ | __ )
\___ \ | | | | | _ \
___) | | |_| | | |_) |
|____/ |____/ |____/
Enter 'r' to run your program
>
键入r
开始调试之旅吧
支持命令
- 查看当前所有协程状态(
ps
) - 窥视协程(
co <id>
) - 进入协程(
attach <id>
) - 查看调用栈(
bt
) - 查栈帧(
f ,index>
) - 打断点(
b
) - 单步调试(
n
) - 恢复运行(
c
) - 查看更多源码(
l
) - 打印变量(
p $var
) - 修改变量(
p $var = x
) - 执行代码(
p command0
) - 查看变量(
vars
) - 扫描僵尸协程(
z <时间>
) - 杀死协程(
kill <id>
) - 杀死所有协程(
killall
)
退出调试器
调试完毕后可以键入q
退出调试器。
如果进程中还存在协程在运行,那么可以再次键入所设置的关键字+回车
呼出调试器。
关键词默认为sdb
,可以在调用runOnTTY()
方法时设置,如:
\Swow\Debug\Debugger\Debugger::runOnTTY('swow');
反之则直接退出。