Smalltalk 如果我的Pharo图像进入无限循环,我如何打破循环?

Smalltalk 如果我的Pharo图像进入无限循环,我如何打破循环?,smalltalk,pharo,Smalltalk,Pharo,昨天我在处理Pharo图像的时候花了大约2个小时,我不小心写了一些代码并执行了它,导致了一个无限循环——实际上,我从另一个方法调用了一个方法,而另一个方法又调用了原始方法,一直来回调用。法老号的图像没有反应。我重新启动了映像,并在这两个小时内丢失了所有的工作 我在网上查看了一下,我可以点击alt-进入某种进程查看器?如何从那里消除无限循环?您确实可以使用-。(其中,mac的cmd,可能是win的ctrl,linux的alt(但在linux上有时是ctrl,在windows上也是alt。例如,Ph

昨天我在处理Pharo图像的时候花了大约2个小时,我不小心写了一些代码并执行了它,导致了一个无限循环——实际上,我从另一个方法调用了一个方法,而另一个方法又调用了原始方法,一直来回调用。法老号的图像没有反应。我重新启动了映像,并在这两个小时内丢失了所有的工作

我在网上查看了一下,我可以点击
alt
-
进入某种进程查看器?如何从那里消除无限循环?

您确实可以使用
-。
(其中,mac的cmd,可能是win的ctrl,linux的alt(但在linux上有时是ctrl,在windows上也是alt。例如,Pharo 6.1在win 10上使用alt)


-。
会导致用户中断,并在正在执行的位置打开调试器。

除了像@Uko解释的那样中断无限循环之外,您可能不会像您担心的那样在这两个小时内丢失所有工作

如果您在外部杀死了法罗而没有保存,您可以随时使用

  • 通过世界菜单>工具>恢复丢失的更改…或
  • 在文本编辑器中打开与图像对应的.changes文件,查看您过去对系统所做的所有更改,并将部分或全部更改复制并粘贴回正在运行的图像

谢谢Uko;你能扩展你的答案,解释一下我如何通过调试器杀死VM内部有问题的进程吗?@SamPearson:你所要做的就是关闭当你停止无限循环时打开的调试器。严格地说,虽然MartinW的答案非常有用,但这个答案实际上回答了这个问题。事实上,它可能会值得将这两个问题/答案分开,以便其他遇到相同问题的人更容易找到恢复信息。Uko,在Windows和Linux上,它实际上是
Alt
+
。在Pharo 6.1中,它是Alt-。在Windows 10上。哇,这太酷了!因此,即使我没有更改,.changes文件也会在我进行更改时写入保存图像了吗?没错。实际上,我发现它并没有通过示例保存Pharo中承诺的所有更改,但它确实保存了添加或更改的方法。请看。