Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

If my Pharo image goes into an infinite loop, how do I break out of the loop?

Yesterday I was about 2 hours in to working on my Pharo image when I accidentally wrote some code and executed it that caused an infinite loop -- actually, I was calling one method from another method, which in turn called the original method, back and forth forever. The pharo image was unresponsive. I restarted the image and lost all my work for that two hours!

I looked online and I can hit alt-. to get into some sort of process viewer? How can I kill the infinite loop from there?

like image 484
xofz Avatar asked Jul 16 '14 18:07

xofz


2 Answers

Apart from interrupting an infinite loop as @Uko explained, you probably do not have lost all your work for that two hours, as you feared.

If you have killed Pharo externally without saving you could always use the

  • „Recover lost changes“ tool in the restarted image via World Menu>Tools>Recover lost changes… or
  • open the .changes file corresponding to your image in a text editor and have a look at all your past changes to the system and copy and paste some or all of them back to the running image.
like image 166
MartinW Avatar answered Sep 17 '22 18:09

MartinW


You can indeed use <action key>-. (where is cmd for mac, probably ctrl for win and alt for linux (but it seams that some times is ctrl on linux and also alt on windows. For example Pharo 6.1 uses alt on win 10).

<action key>-. causes user interrupt and opens a debugger on a place that was being executed.

like image 37
Uko Avatar answered Sep 20 '22 18:09

Uko