图像挂了,下一步是什么?

时间:2011-04-25 03:08:47

标签: smalltalk squeak pharo

我关注tutorial on Magma the awesome Seaside book,我的图像完全被卡住了。那时我在调试器中,我试图在以下代码段的ToDoDB root部分运行“检查它”:

ToDoDB createDB.
ToDoDB commit: [ ToDoDB root add: ToDoItem new ].
ToDoDB release.

之后我的图像停止响应任何事情。

我有点好奇为什么Magma在检查行动上表现出那种方式,但我更有兴趣了解解决这个问题的方法是什么?我应该抛弃这个图像并从头开始吗?我可以向VM发送一些操作系统信号来杀死活动线程吗? Smalltalk新手在这里。

2 个答案:

答案 0 :(得分:2)

肖恩已经回答了,但你也可以在pharo协作书中找到它:http://book.pharo-project.org/book/TipsAndTricks/InterruptKey/

只是另一句话,你说“我可以向VM发送一些操作系统信号以杀死活动线程或其他东西吗?Smalltalk newbie here。”请注意,大多数Smalltalk方言都有所谓的“绿色线程”。也就是说,从OS的角度来看,它只是一个线程。 Smalltalk内部管理自己的不同过程和相关的时间表。检查处理器,调度程序等类。所以......我说的是,如果你想从外部杀死一个线程,你将杀死唯一的线程,整个VM;)

答案 1 :(得分:1)

尝试发送中断。有关平台的快捷方式(即基础操作系统),请参阅http://wiki.squeak.org/squeak/899

此外,您可能意味着“抛出此图像”而不是“此VM”。 Pharo By Example是Smalltalk基础知识的绝佳免费资源,例如图像与更改文件与VM