OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 21 Июнь, 2025 06:41

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Прервать выполнение программы
СообщениеДобавлено: Понедельник, 25 Январь, 2010 18:09 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Как прервать выполнение программы (как в Delphi/Free Pascal Ctrl-F2) ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Понедельник, 25 Январь, 2010 18:11 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Когда зависла Ваша команда? Ctrl-Break. Документацию и руководства не читаем :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Понедельник, 25 Январь, 2010 18:20 

Зарегистрирован: Вторник, 19 Январь, 2010 23:54
Сообщения: 136
Илья Ермаков писал(а):
Когда зависла Ваша команда? Ctrl-Break. Документацию и руководства не читаем :)
Не знаю. У меня до сих пор бесконечный цикл ни разу прервать не удалось! Только снятием ББ из менеджера задач!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Понедельник, 25 Январь, 2010 18:30 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Под Вайном запускаете? Не угадал?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Понедельник, 25 Январь, 2010 21:00 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Илья Ермаков писал(а):
Когда зависла Ваша команда? Ctrl-Break. Документацию и руководства не читаем :)

Не помогает. Вывод в журнал был слишком долог и я не смог его прервать.
Система - Win XP.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Понедельник, 25 Январь, 2010 21:03 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Роман М. писал(а):
Вывод в журнал был слишком долог и я не смог его прервать.
Система - Win XP.
Значит, ББ -- точно не с Информатики-21.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Понедельник, 25 Январь, 2010 21:26 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4722
Откуда: Россия, Орёл
Info21 писал(а):
Роман М. писал(а):
Вывод в журнал был слишком долог и я не смог его прервать.
Система - Win XP.
Значит, ББ -- точно не с Информатики-21.

Сборка тут не при чём.
Иногда Ctrl+Break действительно не срабатывает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Понедельник, 25 Январь, 2010 22:28 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 557
В Delphi в тело цикла вставляется метод Aplication.ProcessMessages - "Приостанавливает работу программы до тех пор, пока не будут обработаны все сообщения".
Не будет никаких проблем с интерфейсом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Понедельник, 25 Январь, 2010 22:35 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4722
Откуда: Россия, Орёл
Геннадий Тышов писал(а):
В Delphi в тело цикла вставляется метод Aplication.ProcessMessages - "Приостанавливает работу программы до тех пор, пока не будут обработаны все сообщения".
Не будет никаких проблем с интерфейсом.

В BlackBox это тоже не проблема и случается оно очень редко.

Олег Цилюрик помнится говорил, что завалить можно даже не убиваемый в обычных условиях QNX. Но для этого намеренно надо постараться. Так и тут. Если заведомую дрянь не писать, то всё нормально будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Понедельник, 25 Январь, 2010 23:21 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2461
Откуда: Россия, Томск
Роман М. писал(а):
Вывод в журнал был слишком долог и я не смог его прервать. Система - Win XP.

Борис Рюмшин писал(а):
Сборка тут не при чём. Иногда Ctrl+Break действительно не срабатывает.

Пример в студию. Хоть с выводом в лог, хоть ещё с чем.
Прошу как некогда дорабатывавший код прерывателя Ctrl+Break. По возможности помогу.
У меня тоже WinXP, всё срабатывает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Понедельник, 25 Январь, 2010 23:32 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
>> завалить можно даже не убиваемый

>> Пример в студию.

Я знаю следующий пример. Нужно чтобы был файл подкачки. Создаёте в ББ много объектов так чтобы кончилась оперативная память и ББ начал шуршать жёстким диском. Когда надоест слушать шуршание диска можно нажать Ctrl+Break, но вот дождаться когда же все рассосётся терпения едва ли хватит. Не рассосётся, и дело вовсе не в реализации обработчика прерывания, а в том что ББ память обратно в систему не отдаёт, так и будет шуршать диском пока его не убьёшь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Вторник, 26 Январь, 2010 15:48 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Так это же не пример зацикливания. Здесь причина отказа совсем другая.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Вторник, 26 Январь, 2010 16:49 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Я пользуюсь версией 1.5. Запустил программу-обёртку для внешней DLL. В обёртке интенсивно производятся вычисления, а результаты выводятся в журнал. Нажатие на Ctrl-Break не помогает - происходит "заморозка" вывода, процессор забивается под самую завязку и через некоторое время "оттаивает" (~минута-две).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Среда, 27 Январь, 2010 22:00 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 557
Смотрите тему "Зависание" BlackBox при длительных вычислениях от 14 Март, 2006
http://forum.oberoncore.ru/viewtopic.php?p=1469#p1469


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прервать выполнение программы
СообщениеДобавлено: Пятница, 29 Январь, 2010 17:08 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Штука в том, что прерыватель смотрит, чтобы в момент прерывания процесс находился внутри модулей ББ (а не во внешних библиотеках, в том числе не внутри WinApi-вызовов и т.п.).
Если зациклившаяся программа интенсивно уходит во внешние библиотеки, то вероятность поймать её в момент нахождения внутри ББ-шных модулей мала. В некоторых случаях - исчезающе мала.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2025, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB