Smalltalk по-русски
среда, Май 21, 2008
[VW] SOS: спасите наши души

Иногда, при разработке приложения можно столкнуться с тем, что UI среды перестаёт отвечать. Добиться этого достаточно просто. Откройте Workspace и выполните такой код:

[true] whileTrue: [].
Система заблокирована и может быть не понятно, что делать в такой ситуации. Выходов может быть несколько.

Во-первых, можно нажать комбинацию <Ctrl>-\. При этом откроется "Process Monitor" и все пользовательские процессы будут приостановлены.

Монитор процессов - Process Monitor
Из монитора процессов можно поменять приоритет процессам, открыть на любом процессе инспектор, прибить процес или, что можеть быть более полезно, открыть отладчик.

Во-вторых, если я правильно помню, то монитор процессов, это относительно новая штука. В VW с давних времён существовала возможность открыть отладчик на текущем процессе. Вызывается отладчик комбинацией <Ctrl>-Y. В зависимости от того, какое окно было активно в момент нажатия <Ctrl>-Y, на том процессе и будет активирован отладчик.

Эти две комбинации позволяют легко разобраться с простыми ситуациями. Например, с циклическим распространением событий между слушателями. И монитор и отладчик особенно полезны, если учесть, что из-за особенностей устройства VW ждать переполнения стека (и, как следствие, прерывания процесса) можно очень долго.

Кстати, в ситуации с зацикливанием так же очень помогает инструмент StackOverflow.

Если же отладчик/монитор не помогают или не доступны, то есть последний довод программиста - "Emergency Evaluator". Вызывается он по комбинации <Ctrl>-<Shift>-Y. В открывшемся окне можно выполнять ST-код. Набираете выражение и по нажатию <Esc> оно выполняется. Например, выражение

ObjectMemory quit
просто завершит работу системы. Если же вы хотите сохранить образ перед выходом, то можно воспользоваться выражением
ObjectMemory saveAs: 'filename' thenQuit: true.

Ярлыки:

Comments:
Может, такие статьи лучше писать в вики? Там они с бОльшей вероятностью не потеряются, чем в ленте блога.
 
в вики можно давать ссылку.
 
Отправить комментарий

<< Home

Популярные статьи
:: Smalltalk?!
:: Почему Smalltalk?
:: Great Leap Forward from Java to Smalltalk

Последние сообщения
:: [Squeak] Вышел Squeak 3.10
:: [VW] Вышел VW 7.6
:: [Диалекты] Huemul Smalltalk
:: [GST] GNU Smalltalk 3.0 release
:: [Dolphin] Дельфин 6.1 или "он умер, но затем встал...
:: Bottom line '2007
:: [VW] Поиск по публичному StORE-репозиторию
:: [VW] Прощай, Widgetry!
:: [VAST] Вышла новая версия VA Smalltalk - 7.5.2
:: [Dolphin] Dolphin Smalltalk - R.I.P.

Архив
Предыдущие новости / Декабрь 2004 / Январь 2005 / Февраль 2005 / Март 2005 / Апрель 2005 / Май 2005 / Июнь 2005 / Июль 2005 / Август 2005 / Сентябрь 2005 / Октябрь 2005 / Ноябрь 2005 / Декабрь 2005 / Январь 2006 / Февраль 2006 / Март 2006 / Апрель 2006 / Май 2006 / Июнь 2006 / Июль 2006 / Сентябрь 2006 / Октябрь 2006 / Ноябрь 2006 / Декабрь 2006 / Январь 2007 / Февраль 2007 / Март 2007 / Апрель 2007 / Май 2007 / Июнь 2007 / Август 2007 / Сентябрь 2007 / Ноябрь 2007 / Январь 2008 / Март 2008 / Май 2008 / Июнь 2008 / Июль 2008 / Август 2008 / Сентябрь 2008

Atom Feed
Smalltalk по-русски


Powered by Blogger