OberonCore https://forum.oberoncore.ru/ |
|
DIA: BlackBox Component Builder 1.6 + GTK2 https://forum.oberoncore.ru/viewtopic.php?f=134&t=3535 |
Страница 3 из 6 |
Автор: | Иван Денисов [ Четверг, 13 Сентябрь, 2012 12:18 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Обновил репозиторий, теперь ядро от OpenBUGS 3.2.2 с теми правками от Александра. |
Автор: | Alexander Shiryaev [ Четверг, 13 Сентябрь, 2012 12:31 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Ок. Теперь надо исправить опечатки:
Ещё:
stop: используй pkill вместо kill `ps ...` |
Автор: | Иван Денисов [ Четверг, 13 Сентябрь, 2012 13:36 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Alexander Shiryaev писал(а): Ок. Все поправил, реп. обновил.Теперь надо исправить ... Если вы захотите что-то заливать сами, то права на запись в этот реп. у вас есть. Хотя мне такая форма больше нравится — учусь. |
Автор: | Alexander Shiryaev [ Четверг, 13 Сентябрь, 2012 23:04 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Не.. вместо Код: kill `ps -ef | grep blackbox | grep -v grep | awk '{ print $2 }' надо было написать Код: pkill -x blackbox http://ru.wikipedia.org/wiki/Pkill |
Автор: | Иван Денисов [ Суббота, 15 Сентябрь, 2012 12:59 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Alexander Shiryaev писал(а): Не.. вместо Сделал, проверял на GUI версии, интерфейс остается висеть. А вот серверная версия убивается хорошо. Скрипт собственно для нее, поэтому все ОК.
Код: kill `ps -ef | grep blackbox | grep -v grep | awk '{ print $2 }' надо было написать Код: pkill -x blackbox http://ru.wikipedia.org/wiki/Pkill |
Автор: | Alexander Shiryaev [ Суббота, 15 Сентябрь, 2012 14:48 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Вообще надо будет правильно реализовать обработку сигнала SIGTERM. Сейчас просто срабатывает TRAP, а надо:
|
Автор: | Иван Денисов [ Суббота, 15 Сентябрь, 2012 18:39 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Alexander Shiryaev писал(а): Вообще надо будет правильно реализовать обработку сигнала SIGTERM. Сейчас просто срабатывает TRAP, а надо:
Отлично, разобрался, что в ядре за обработку всех прерываний отвечает TrapHandler добвил в CASE sig OF вариант | LinLibc.SIGTERM Quit(1); и трап больше не выдается. Также, добавил Quit(1) на SIGINT, чтобы ББ закрывался при нажатии Ctrl+C в консоли, это очень облегчит отладку. Уф. Реп. обновил. |
Автор: | Иван Денисов [ Среда, 19 Сентябрь, 2012 12:13 ] |
Заголовок сообщения: | Re: Итерация 2 |
Alexander Shiryaev писал(а): Иван Денисов писал(а): Каким образом делали эти хедеры Gtk2? Вопрос автоматической хедерогенерации открыт. По поводу автоматической кодогенерации интерфейсных модулей. См.: ${PREFIX}/share/pygobject/2.0/defs ${PREFIX}/share/pygtk/2.0/defs из py-gtk2 На основе этой информации, по-моему, можно генерировать интерфейсные модули для Gtk2. Парсер для Питона: ${PREFIX}/share/pygobject/2.0/codegen/definitions.py Для облегчения процесса транслятор можно написать на Питоне. Но зато вспомнил про H2O, его получилось адаптировать под КП и транслировать две библиотеки. viewtopic.php?f=34&t=661&p=74877#p74877 На сколько они пригоды сложно судить, но процесс прошел до конца, типы данных и процедуры совпадают с известными трансляциями Cairo и FreeImage. Пробовал gtk2 транслировать, но это оказалось посложнее лезут ошибки. |
Автор: | Иван Денисов [ Вторник, 25 Сентябрь, 2012 20:02 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Почистил историю репозитория от случайно добвленных pdf и txt документов, а также svn ошметков. Помогла статья: http://www.ducea.com/2012/02/07/howto-c ... t-history/ |
Автор: | Иван Денисов [ Среда, 26 Сентябрь, 2012 20:23 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Добавил HostFiles, Kernel, LinDl, LinLibc из хранилища Александра, заменил ими версию ядра OpenBUGS322 и Омниковские модули. С новым ядром легче идет отладка компонентов интерфейса, приложение делает корректно аварийную остановку. Добавил обработку сигналов завершения в версию ядра Александра, что обсуждалось выше. |
Автор: | Иван Денисов [ Среда, 26 Сентябрь, 2012 22:58 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Починил HostGnome и теперь нормально отрабатывается Hook для Kernel.MessageBox ! Оказалась устаревшая функция в libgnomeui Еще вернул назад ядро OpenBUGS но с правками памяти от Александра. Оказывается аварийная остановка нужна не всегда, если нормально работает ТРАП. Теперь лог открывается и в нем деже можно что-то напечатать, но затем ББ зависает насмерть. |
Автор: | Alexander Shiryaev [ Четверг, 27 Сентябрь, 2012 19:59 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Иван Денисов писал(а): Еще вернул назад ядро OpenBUGS но с правками памяти от Александра. Оказывается аварийная остановка нужна не всегда, если нормально работает ТРАП. ? Цитата: Теперь лог открывается и в нем деже можно что-то напечатать, но затем ББ зависает насмерть. Попробовал, как работает StdLog (Info -> Open Log) в Linux (Fedora Core 17). У меня почему-то всё нормально работает, не зависает, TRAP не выдаёт. И в OpenBSD тоже. Что нужно сделать, чтобы BlackBox завис или аварийно завершился? |
Автор: | Иван Денисов [ Пятница, 28 Сентябрь, 2012 08:23 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
После того как я поправил HostGnome и пересобрал ядро с ним, как описано в Lin/Docu/LinuxPort.odc, заработали KernelMessages и после открытия лога вылетает такое окошко с Undefined real result и с вашей версией ядра ББ закрывается с OpenBUGS версией не закрывается, а через некоторое время зависает. Я сделал гибрид OpenBUGS322 и вашего ядра, перенес исправления по работе с памятью. Этот гибрид вместе с исходными ядрами (OpenBUGS322 и вашим) залил в хранилище. Чтобы показать поведение ББ в Ubuntu 12.04 записал видео: http://oberon.molpit.ru/podcast/BB_Lin_test.mp4 |
Автор: | Alexander Shiryaev [ Пятница, 28 Сентябрь, 2012 09:20 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Ок. Странно что в Fedora Core всё нормально работает. |
Автор: | Alexander Shiryaev [ Суббота, 29 Сентябрь, 2012 18:31 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Иван, моё ядро не работало, потому что я забыл исправить Kernel.Start. Теперь у меня всё нормально работает в OpenBSD и в Fedora Core. И DevDebug тоже работает. Ищи место, где возникает "Undefined real result". |
Автор: | Alexander Shiryaev [ Понедельник, 01 Октябрь, 2012 22:39 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
С обработкой исключения при переполнении стека не всё так просто оказалось. Если использовать альтернативный стек для обработки сигналов, то оказывается, что если из обработчика сигнала выйти не по RETURN, а через siglongjmp, то в состоянии процесса сохраняется, что выполнение идёт в альтернативном стеке, и при следующем вызове обработчика сигнала для него уже не происходит переключение на альтернативный стек. Т.е. получается. что в альтернативном стеке обрабатывается только 1-й (по времени) сигнал, а все последующие -- в основном. Переустановку альтернативного стека для обработчиков сигналов выполнить невозможно, если в состоянии процесса хранится информация о том, что идёт исполнение на альтернативном стеке -- его в этом случае просто нельзя отключить. Может быть проблему можно решить с помощью sigreturn вместо siglongjmp (тогда вместо sigsetjmp надо выполнять setcontext). Уже пробовал, это вообще работает. Но ещё есть проблемы. 1) быват, что BlackBox зависает при обработке сигнала (или сразу после) при включенном альтернативном стеке; 2) бывает, что BlackBox зависает при обработке SIGSEGV (или сразу после него, даже при выключенном альтернативном стеке) в случае использования просмотрщика TRAP-ов DevDebug вместо Kernel.DefaultTrapViewer. Разбираюсь. P.S.: в OpenBSD нет setcontext |
Автор: | Alexander Shiryaev [ Воскресенье, 21 Октябрь, 2012 03:42 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Иван Денисов писал(а): Undefined real result Немного поразбирался. Это проблема где-то в Gtk в Ubuntu. Зависает именно Gtk, а не BlackBox, т.е. сам BlackBox продолжает при этом работать. |
Автор: | Иван Денисов [ Понедельник, 22 Октябрь, 2012 07:58 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Сделал ядро Александра сейчас основным после тестов показало себя стабильным, только добавил в него обработку SIGTERM. |
Автор: | Иван Денисов [ Понедельник, 22 Октябрь, 2012 20:09 ] |
Заголовок сообщения: | Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2 |
Убрал ошибку undefined real result при открытии Log, вызывается в HostWindows.UpdateScrollbar, пометил синим. Вернул назад LinLinker так как теперь среда себя запросто собирает сама. Вызов инструмента для сборки из меню Linux/Tool Нужно сделать корректное открытие файлов. Нужно сделать обработку колеса мыши, улучшить выделение слов в текстах. |
Страница 3 из 6 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |