Yasd 扩展Swoole 官方开发的,一款实时单步骤 Debug 调试工具,可用于断点调试 Swoole 协程环境,支持 IDE 以及 命令行 的实时程序调试。

ktf5u8t5.png

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 设置的一样即可

ktf56gvm.png

设置 PHPStorm 断点,开启监听模式

 因为我这里使用的是 虚拟机 环境所以需要配置下 server 远程调试
ktf5axnq.png
 设置指定代码位置开启断点
ktf5eivj.png

启动 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 ;调试日志地址

好了 Swoole 框架PHP安装使用 Yasd 调试debug扩展已经安装使用完毕了