Yasd 扩展是 Swoole 官方开发的,一款实时单步骤 Debug 调试工具,可用于断点调试 Swoole 协程环境,支持 IDE 以及 命令行 的实时程序调试。
Yasd 官方仓库
github : https://github.com/swoole/yasd
Yasd 官方中文文档
github : https://github.com/swoole/yasd/blob/master/README-CN.md
MacOS系统安装boost库
brew install boost
Ubuntu系统安装boost库
apt-get install libboost-all-dev
CentOS系统安装boost库
yum install boost boost-devel
安装 Swoole 官方Yasd调试扩展
分别有一下有两种安装方式 编译安装 , 直接安装编译 好的 so 文件推荐直接安装编译好的简单,安装速度快。
编译安装 Swoole 官方 Yasd调试扩展
git clone https://gitee.com/laiwi/yasd.git
cd yasd
phpize --clean && \
phpize && \
./configure --with-php-config=/www/server/php/80/bin/php-config && \
make clean && \
make && \
make install
注意
--with-php-config=/www/server/php/80/bin/php-config
为php版本位置配置文件
下载编译好的 Yasd 调试扩展进行安装
# 第一步查找扩展默认目录
php -i | grep extension_dir
cd #扩展目录
wget https://cdn.lmcc.top/usr/yasd.0.3.8.so -O yasd.so
配置使用 php.ini 文件 zend_extension
zend_extension=yasd.so
查看扩展信息
php --ri yasd
IDE 模式调试
zend_extension=yasd.so
yasd.debug_mode=remote
yasd.remote_host=127.0.0.1
yasd.remote_port=9000
CMD 模式调试
zend_extension=yasd.so
yasd.debug_mode=cmd
配置 PHPStorm 调试 Debug
配置这一步配置和使用配置 xdebug 时候一样,只需要在debug位置配置 XDebug , Debug Port 端口号与 yasd.remote_port 设置的一样即可
设置 PHPStorm 断点,开启监听模式
因为我这里使用的是 虚拟机 环境所以需要配置下 server 远程调试
设置指定代码位置开启断点
启动 Yasd 开启调试
我们只需要在所执行调试程序命令的后面加上 -e 即可开启启动断点调试
php -e think swoole
php -e test.php
默认会将断点信息保存在缓存文件 .breakpoints_file.log 中,也可以通过修改 php.ini 指定此文件名
yasd.breakpoints_file=yasd.log
完整 Yasd 扩展 php.ini 配置
zend_extension=yasd.so ;扩展文件
yasd.debug_mode=remote ;调试模式
yasd.remote_host=127.0.0.1 ;远程host
yasd.remote_port=9000 ;远程端口
yasd.breakpoints_file=yasd.log ;调试日志地址