• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

另一个Swoole调试器-Yasd

php 搞代码 3年前 (2022-03-01) 28次浏览 已收录 0个评论
文章目录[隐藏]

前段时间说过如何应用 Sdebug(Xdebug)来调试 Swoole,当初 PHP8 和 Xdebug3 都公布了,也有小伙伴在 Swoole 的 ISSUE 中询问 Xdebug 的反对,不过如果还持续兼容 Xdebug 的话必定不是一件容易的事件。

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

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

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

更多功能敬请期待~包含 PHP8 的反对和集成 IDE 的反对。

上面就来看看如何应用这个调试器:

装置扩大

须要先装置 Yasd 扩大

<code class="bash">phpize --clean && \
phpize && \
./configure && \
make clean && \
make && \
make install

设置 php.ini 文件:

<code class="ini">zend_extension=yasd.so

查看扩大信息:

<code class="bash">php --ri yasd

开始调试

装置胜利之后,在须要调试时,减少-e参数,如

<code class="bash">php -e test.php

你就会看到这样的输入

<code class="bash">$ php -e test.php
[Welcome to yasd, the Swoole debugger]
[You can set breakpoint now]
>

可用命令

接着就能够来应用一些命令进行调试了,所有命令都反对优先级含糊匹配,如lilislist都等于l,示意查看源码。

查看源码 list

<code class="bash">l

设置断点

<code class="bash">b 文件的绝对路径 须要断点的行号

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

你也能够通过批改 php.ini 指定此文件名,如:

<code class="ini">yasd.breakpoints_file=yasd.log

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

删除断点 delete

<code class="bash">d 文件的绝对路径 断点所在的行号

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

运行 run

<code class="bash">r

下一步 step over

<code class="bash">n

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

下一步 step into

<code class="bash">s

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

跳出以后函数 finish

<code class="bash">f

查看调用栈

<code class="bash">bt

查看所有断点信息 info

<code class="bash">i

持续运行 continue

<code class="bash">c

退出 quit

<code class="bash">q

打印变量 print

<code class="bash">p

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

<code class="bash">p a
p this
p this->prop

查看以后所在的协程 level

<code class="bash">le

一些小细节

  • 打印断点格局filename:lineno

如果你是在 IDE 中调试,能够间接点击跳转到对应的文件

  • 主动缓存断点信息

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

  • 设置断点和删除断点

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

  • 主动反复命令

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

  • 更多细节等你来发现

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:另一个Swoole调试器-Yasd

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址