Wednesday, August 15, 2007

Syx image recovering

lately Syx gained system signal handling. On Segmentation Violation or Illegal Instruction, a complete traceback of the execution state, the memory state and the active process contexts being entered is printed on stdout.

Sometimes, i had problems with Squeak while developing SqueakGtk, because i did interact with C and it was easy to get into an infinite loop or a segv.

In other words, sometimes these errors come just from one Process (in the above example, i'm talking about the Gtk main loop) that break things each time you start the same image.

In Syx, i managed to automatically create a copy of the image, appending the ".recover" extension, whenever SIGSEGV or SIGILL is signaled and then remove that broken Process from being scheduled.
Also, if this didn't work because the corruption involved the VM, you're still able to use the --recovery option from the command line.


No comments: