最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 另一个Swoole调试器 - Yasd

    正文概述 转载于:掘金(沈唁)   2021-02-08   444

    前段时间说过如何使用 Sdebug(Xdebug)来调试 Swoole,现在 php8 和 Xdebug3 都发布了,也有小伙伴在 Swoole 的 ISSUE 中询问 Xdebug 的支持,不过如果还继续兼容 Xdebug 的话肯定不是一件容易的事情。

    于是 Swoole 开发组成员 @codinghuang 开发了一个新的调试扩展,名为 Yasd ,另一个 Swoole 调试器。

    先简单概述一下这个调试器能干什么:

    1. 调试协程
    2. 断点调试
    3. 断点缓存
    4. 查看调用栈
    5. 单步调试
    6. .....

    更多功能敬请期待~包括 PHP8 的支持和集成 IDE 的支持。

    下面就来看看如何使用这个调试器:

    安装扩展

    需要先安装 Yasd 扩展

    phpize --clean && \
    phpize && \
    ./configure && \
    make clean && \
    make && \
    make install
    

    设置 php.ini 文件:

    zend_extension=yasd.so
    

    查看扩展信息:

    php --ri yasd
    

    开始调试

    安装成功之后,在需要调试时,增加-e参数,如

    php -e test.php
    

    你就会看到这样的输出

    $ php -e test.php
    [Welcome to yasd, the Swoole debugger]
    [You can set breakpoint now]
    >
    

    可用命令

    接着就可以来使用一些命令进行调试了,所有命令都支持优先级模糊匹配,如lilislist都等于l,表示查看源码。

    查看源码 list

    l
    

    设置断点

    b 文件的绝对路径 需要断点的行号
    

    默认会将断点信息保存在缓存文件 .breakpoints_file.log 中;

    你也可以通过修改 php.ini 指定此文件名,如:

    yasd.breakpoints_file=yasd.log
    

    如果缓存文件存在,当启动调试时,文件中的断点信息会被自动加载;

    删除断点 delete

    d 文件的绝对路径 断点所在的行号
    

    如果设置或者删除断点时,不指定文件绝对路径,默认是当前停留的文件。

    运行 run

    r
    

    下一步 step over

    n
    

    遇到函数的时候,不会进入函数内部

    下一步 step into

    s
    

    遇到函数的时候,会进入函数内部

    跳出当前函数 finish

    f
    

    查看调用栈

    bt
    

    查看所有断点信息 info

    i
    

    继续运行 continue

    c
    

    退出 quit

    q
    

    打印变量 print

    p
    

    变量名字不需要带$,例如:

    p a
    p this
    p this->prop
    

    查看当前所在的协程 level

    le
    

    一些小细节

    • 打印断点格式filename:lineno

    如果你是在 IDE 中调试,可以直接点击跳转到对应的文件

    • 自动缓存断点信息

    默认会将断点信息保存在缓存文件 .breakpoints_file.log 中,如果缓存文件存在,当启动调试时,文件中的断点信息会被自动加载。

    • 设置断点和删除断点

    如果不指定文件绝对路径,默认是当前停留的文件。

    • 自动重复命令

    如果不输入命令直接回车,默认是上一条命令

    • 更多细节等你来发现

    起源地下载网 » 另一个Swoole调试器 - Yasd

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元