Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт апр 16, 2024 13:34

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Проблема в C-CALL в SPF-Linux
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
Цитата:
Кста, Уважаемый - может Вы поделитесь своими наработками в области GUI под Линукс!

Горько признать, но реальных разработок на SPF у меня нет. Есть желание попробовать написать небольшую графическую либу на SPF + dll/so + QT. Меня больше всего интересует кросплатформенность (windows и linux). В качестве примера (http://narod.ru/disk/19366329000/spf-call.zip.html). Задача эта решаема http://mgw.narod.ru, но для этого надо сделать унифицированную либу как для win так и для linux. Сейчас поддержка win и linux в SPF различается кардинально, как форматом вызовов, так и синтаксисом, что на мой взгляд неоправданно. На данном этапе я застрял на C-CALL, который явно сырой (нет сохранения важных для SPF регистров), но проблема у меня с ассемблером, нет достаточных знаний.
Цитата:
Сообщение Добавлено: Вт апр 06, 2010 10:19
  Заголовок сообщения:   Ответить с цитатой
Ilya писал(а):
А как ищется требуемая .so-шка по функции?

..иногда бывает немного по-другому: название функции известно;), а название .so/.dll - предполагается;
в таком случае:
Код:
nm название_либы | grep название_функции

..полезно брать подстроку названия функции..
Еще для целей вивисекции/эксгумации есть "мега-тулзы" objdump и objcopy. Главное при их применении - не переусердствовать :)

mgw писал(а):
Специалисты по spf и ассемблеру, помогите вставить в C-CALL сохранение регистров

..вспомнил, что юнихи, в т.ч. линух используют (скорее всего) BX при работе с dll/so, следовательно, этот регистр нужно сохранять во избежание memory fault-ов. Попробуйте - должно сработать.
Сообщение Добавлено: Вт апр 06, 2010 03:54
  Заголовок сообщения:   Ответить с цитатой
mgw писал(а):
Цитата:
А как ищется требуемая .so-шка по функции?

Если вопросы по графике QT — то программа assistant (полная справка по использованию), идет в составе QT.
Если по функциям Linux — то программа man, в составе Linux
ну а по всему остальному www.google.ru

Кста, Уважаемый - может Вы поделитесь своими наработками в области GUI под Линукс!? :wink: Особливо для неофитов! :pilot2;
Сообщение Добавлено: Пн апр 05, 2010 23:02
  Заголовок сообщения:   Ответить с цитатой
Специалисты по spf и ассемблеру, помогите вставить в C-CALL сохранение регистров задействованных в ядре SPF. Сейчас у меня C-CALL (spf 4.20 Linux) выглядит след. образом:
Код:
CODE C-CALL ( x1 ... xn n adr -- res ) \ int fun(x1 .. xn);
      MOV EBX, [EBP]      \ число аргументов
      MOV ESI, # 4
@@1: OR EBX, EBX
      JZ @@2
A;   PUSH [EBP] [ESI]
      LEA ESI, 4 [ESI]
      DEC EBX
      JMP @@1
@@2: CALL EAX
      MOV ECX, [EBP]
      SHL ECX, # 2
      ADD ESP, ECX
      ADD ECX, # 4
      ADD EBP, ECX
      RET
END-CODE
Сообщение Добавлено: Пн апр 05, 2010 18:08
  Заголовок сообщения:   Ответить с цитатой
Цитата:
А как ищется требуемая .so-шка по функции?

Если вопросы по графике QT — то программа assistant (полная справка по использованию), идет в составе QT.
Если по функциям Linux — то программа man, в составе Linux
ну а по всему остальному www.google.ru
Сообщение Добавлено: Пн апр 05, 2010 12:16
  Заголовок сообщения:   Ответить с цитатой
Немного ОФФ!
А как ищется требуемая .so-шка по функции?
В смысле: в win32 - смотрим функцию в мэсэдэене и видем всю требуемую инфу (список параметров, имя подключаемой dll-ки, и т.п), а в Лине как?
Сообщение Добавлено: Вс апр 04, 2010 12:26
  Заголовок сообщения:   Ответить с цитатой
Закачал пример http://narod.ru/disk/19366329000/spf-call.zip.html В README описал проблему и запуск примера.
Сообщение Добавлено: Сб апр 03, 2010 22:10
  Заголовок сообщения:   Ответить с цитатой
отключить оптимизатор
посмотреть сгенерированный код
прогнать в отладчике
дать полностью весь код чтобы можно было повторить проблему
Сообщение Добавлено: Пт апр 02, 2010 22:51
  Заголовок сообщения:  Проблема в C-CALL в SPF-Linux  Ответить с цитатой
В Linux столкнулся с непонятным поведением C-CALL. Если несколько вызовов записаны в рамках одного определения, то все работает. Если их разнести в два определения не работает (валится по core dump). Как найти причину?
Пример:
Код:
: aa     \  РАБОТАЕТ
   0 1 aQWidget @ C-CALL 1 aQWidget_show @  C-CALL DROP
    _QT_App @ 1 aapp_exec @ C-CALL DROP
   ;

: a1
   0 1 aQWidget @ C-CALL 1 aQWidget_show @  C-CALL DROP
   ;
: a2
    _QT_App @ 1 aapp_exec @ C-CALL DROP
   ;
: bb     \  НЕ РАБОТАЕТ
    a1  a2
    ;
В Windows такая конструкция работает нормально. Как найти причину?
Сообщение Добавлено: Пт апр 02, 2010 16:21

Часовой пояс: UTC + 3 часа [ Летнее время ]


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB