【问题标题】:PhpStorm take a step back in debuggerPhpStorm 在调试器中退后一步
【发布时间】:2016-11-11 10:01:53
【问题描述】:

这个问题之前已经在其他 IDE 中被问过,但是对于 PHPStorm 呢?有没有办法在调试时退后一步?

特别是在抛出异常之后,我想轻松地退后一步。或者至少能够看到调用堆栈,以便我可以快速查看需要设置断点的位置,因为目前我只需要从头开始再次运行并尝试在异常之前停止。

【问题讨论】:

  • 问题是:PHP 本身和它的调试器(无论是 xdebug 还是 Zend 调试器)是否真的支持这样的功能(“退一步”)? AFAIK——不。 P.S. 不是 100% 相关的(因为这有点不同),但是:confluence.jetbrains.com/display/PhpStorm/…
  • 查看我的答案,了解使用调试器进行后退的其他选项。

标签: php debugging phpstorm xdebug


【解决方案1】:

是的,你可以退后一步。 Debugger 选项卡中的 Frames 窗口显示了到达该点的执行路径。默认情况下,调试器只选择当前帧。

您可以轻松单击任何帧,或使用箭头键上下移动以查看变量的状态,甚至可以查看该点在代码中的位置。

【讨论】:

  • 我按照你说的方法试过了,但我无法退后一步?我可以看到框架只是一个堆栈跟踪。你可以解释吗 ?我经常需要退后一步,不得不重新执行整个流程。
  • 这只是为了查看堆栈跟踪中先前点的状态。我不认为你可以重新执行。但你不一定需要重新执行,因为你也可以在框架中前进。
【解决方案2】:

有一种叫做time travel debugging 的东西可以让代码后退。它记录了一个 php 脚本的执行,因此您可以重播它并能够以反向模式单步执行。

一个适用于 PhpStorm 和 Xdebug 的示例是:https://github.com/sidkshatriya/dontbug

【讨论】:

    猜你喜欢
    • 2021-03-16
    • 2021-07-25
    • 2011-10-24
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多