debugging PhpStorm在调试器中后退一步

e5njpo68  于 2023-05-07  发布在  PHP
关注(0)|答案(3)|浏览(134)

这个问题以前在其他IDE中被问过,但是对于PHPStorm呢?有没有办法在调试时后退一步?
特别是在抛出异常之后,我想轻松地后退一步。或者至少能够看到调用堆栈,这样我就可以快速看到需要在哪里设置断点,因为目前我只需要从头开始再次运行,并尝试在异常之前停止。

goucqfw6

goucqfw61#

是的,你可以后退一步。Debugger选项卡中的Frames窗口显示了到达该点所采用的执行路径。默认情况下,调试器只是选择当前帧。
您可以轻松地单击任何框架,或使用箭头键上下移动以查看变量的状态,甚至查看该点在代码中的位置。

hujrc8aj

hujrc8aj2#

有一个名为time travel debugging的东西,可以通过代码进行后退。它记录了一个php脚本的执行,这样你就可以重放它,并且可以在反向模式下执行。
使用PhpStorm和Xdebug的一个例子是:https://github.com/sidkshatriya/dontbug

kx7yvsdv

kx7yvsdv3#

你永远不能“退一步”,但你可以往上走。整个堆栈是“当前”的,是当前状态的一部分。但是在程序中没有办法后退,因为根据定理,程序基本上是不可逆的。
正如Gerard de Visser所提到的,从理论上讲,记录执行的每一步肯定是可能的。但我想有个更简单的解决办法。
你能做的就是使用PhpStorm的快捷方式来“转到最后一个光标位置”(VS Code也有这样的快捷方式,我相信所有其他IDE都有)。在Ubuntu上,它是shift + alt + left-arrow,但在Windows上,我认为它是ctrl + alt + left-arrow。当抛出异常时,我经常使用它。然后,我在中设置了一个断点,并重新运行代码。

相关问题