Обход кода запуска, чтобы предотвратить падение изображения при запуске - PullRequest
2 голосов
/ 10 сентября 2011

У меня есть новый образ Pharo 1.3, который я только что загрузил с SS, DBX и моими приложениями.Я использую последнюю Cog VM на OSX10.6.Виртуальная машина зависала случайно, и когда я пытался перезапустить образ, он немедленно завершает работу.Трассировка стека показывает, что мое приложение получило ошибку при чтении открытого сокета, которого, конечно, больше не существует.

Что я хотел бы знать, есть ли способ передать сценарий или параметр командной строки и позволить Pharo обойти мое приложение и запуск?Я думаю, что точно знаю, где в моем коде мне нужно изменить, так что даже если бы я мог подать (из командной строки) патч, это тоже сработало бы.

В принципе, мне нужен безопасный режимчтобы загрузить образ и манипулировать кодом, сохраните и перезагрузите его как обычно.

1 Ответ

2 голосов
/ 10 сентября 2011

Вы можете попробовать передать .st файл на изображение. Однако нарушающий код может быть выполнен до обработки файла (все методы запуска выполняются до обработки аргумента). В этом случае единственный вариант - создать отладочную виртуальную машину. После того, как вы вручную отредактируете виртуальную машину или используете gdb, чтобы избежать выполнения кода вашего сокета, исправьте код в запущенном образе и сохраните. Тогда вы сможете запустить его на обычной виртуальной машине. Для создания виртуальной машины см. Превосходные посты / скринкасты Мариано Мартинеса Пека , как этот . Кроме того, см. эту ветку в списке Pharo о моем опыте этого.

n.b. это может занять довольно много времени, поэтому рассмотрите компромисс с простым запуском нового изображения.

...