UDF для FireBird 1.5 i 2.0

ЧАстые Вопросы и Ответы

Модераторы: kdv, CyberMax

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 17 янв 2007, 13:34

kdv писал(а):может тебе еще и функцию удаленно поотлаживать?
А, кстати, да: почему бы автору не собрать debug build, запустить его под отладчиком, уронить и опубликовать результат команды bt.

SkyFox
Сообщения: 23
Зарегистрирован: 21 ноя 2006, 11:57

Сообщение SkyFox » 17 янв 2007, 13:35

kdv писал(а): может тебе еще и функцию удаленно поотлаживать?
ты не выпендривайся, а на вопросы отвечай.
на какой вопрос не отвечено?

CHARACTER SET NONE - дело вкуса, можно и без него или любую другую кодировку указать.

SkyFox
Сообщения: 23
Зарегистрирован: 21 ноя 2006, 11:57

Сообщение SkyFox » 17 янв 2007, 13:41

Dimitry Sibiryakov писал(а):А, кстати, да: почему бы автору не собрать debug build, запустить его под отладчиком, уронить и опубликовать результат команды bt.
ок повторю еще раз, функция тестировалась на VS 6.0, VS 2005 - dll работает, под Win2000, WinXp, FireBird 1.5, FireBird 2.0 - проблемы только под Linux + FB1.5.3

Если под Linux в исходнике заменить ib_util_malloc на malloc и откомпилировать - все замечательно работает, если компилировать с вызовом ib_util_malloc - то udf компилируется, но сервер падает.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 янв 2007, 13:42

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

SkyFox
Сообщения: 23
Зарегистрирован: 21 ноя 2006, 11:57

Сообщение SkyFox » 17 янв 2007, 13:50

kdv писал(а):если при вызове функции падает стабильно, можно в udf соорудить нечто вроде вывода действий в лог, как это сделано в udfdemo.
скорее дело с выделением памяти либо с вызовом ib_util_malloc

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 17 янв 2007, 14:02

SkyFox писал(а):ок повторю еще раз - проблемы только под Linux + FB1.5.3.
ok, повторю еще раз - это баг либо библиотеки, либо сервера. Получить дамп стэка при падении - самый быстрый способ его поймать. FB собирается под линухом тривиально. Для запуска gdb тоже необязательно быть гением.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 17 янв 2007, 14:19

SkyFox писал(а):скорее дело с выделением памяти либо с вызовом ib_util_malloc
Напиши тестовый вариант процедуры, где ничего не будет делаться, а тупо создаваться строка с помощью ib_util_malloc и возвращаться.

SkyFox
Сообщения: 23
Зарегистрирован: 21 ноя 2006, 11:57

Сообщение SkyFox » 17 янв 2007, 16:27

WildSery писал(а):
SkyFox писал(а):скорее дело с выделением памяти либо с вызовом ib_util_malloc
Напиши тестовый вариант процедуры, где ничего не будет делаться, а тупо создаваться строка с помощью ib_util_malloc и возвращаться.

смотри предыдущую страницу, уже всю инфу выложил

падает с инфой:

www (Client) Wed Jan 17 15:15:25 2007
/opt/firebird/bin/fbguard: bin/fbserver terminated abnormally (127)

SkyFox
Сообщения: 23
Зарегистрирован: 21 ноя 2006, 11:57

Сообщение SkyFox » 17 янв 2007, 16:33

Dimitry Sibiryakov писал(а):А, кстати, да: почему бы автору не собрать debug build, запустить его под отладчиком, уронить и опубликовать результат команды bt.
с этого места по подробнее - как его собрать под Linux?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 18 янв 2007, 07:37

cd firebird2
./autogen.sh --enable-debug --enable-superserver
make
make install

SkyFox
Сообщения: 23
Зарегистрирован: 21 ноя 2006, 11:57

Сообщение SkyFox » 18 янв 2007, 15:39

Dimitry Sibiryakov писал(а):cd firebird2
./autogen.sh --enable-debug --enable-superserver
make
make install
зачем --enable-superserver ?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 18 янв 2007, 15:43

SkyFox писал(а):зачем --enable-superserver ?
А ты сумеешь запустить классик под отладчиком?

SkyFox
Сообщения: 23
Зарегистрирован: 21 ноя 2006, 11:57

Сообщение SkyFox » 18 янв 2007, 18:25

Dimitry Sibiryakov писал(а):
SkyFox писал(а):зачем --enable-superserver ?
А ты сумеешь запустить классик под отладчиком?

А кто умеет ставить на FreeBSD SuperServer?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 19 янв 2007, 00:10

да, супер на фре не работает.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 19 янв 2007, 08:30

Но автор заявлял и про Линух тоже...
В любом случае можно заставить сервер при падении отбрасывать корку и уже ее загонять в отладчик для анализа стека.

SkyFox
Сообщения: 23
Зарегистрирован: 21 ноя 2006, 11:57

Сообщение SkyFox » 19 янв 2007, 10:36

Dimitry Sibiryakov писал(а):Но автор заявлял и про Линух тоже...
В любом случае можно заставить сервер при падении отбрасывать корку и уже ее загонять в отладчик для анализа стека.
нет сейчас свободного Linux сервера, только FreeBSD.

SkyFox
Сообщения: 23
Зарегистрирован: 21 ноя 2006, 11:57

Сообщение SkyFox » 22 янв 2007, 16:59

Tak, teper` eshe interesnej, zapuskaem i vse v rezhime ozhitdanija, otveta ot servera net, v log nichego ne padaet :(

v6y
Сообщения: 78
Зарегистрирован: 12 мар 2005, 17:45

Re: UDF для FireBird 1.5 i 2.0

Сообщение v6y » 29 янв 2007, 21:01

SkyFox писал(а): Теперь проблема под Linux и FreeBSD, UDF компилится:
gcc udf_name.c -shared -fPIC -o udf_name.so -I/usr/local/firebird/include -I/usr/local/firebird/lib

ошибок нет, UDF не работает.

Надо компилить с другими ключами?
Я не понял - вы ключ -lib_util совсем не используете что ли? Если так, то из какого, извиняюсь за выражение, места тогда должна вызываться ib_util_malloc?

SkyFox
Сообщения: 23
Зарегистрирован: 21 ноя 2006, 11:57

Re: UDF для FireBird 1.5 i 2.0

Сообщение SkyFox » 30 янв 2007, 10:39

v6y писал(а): Я не понял - вы ключ -lib_util совсем не используете что ли? Если так, то из какого, извиняюсь за выражение, места тогда должна вызываться ib_util_malloc?
Единственно толковый ответ, Спасибо!

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: UDF для FireBird 1.5 i 2.0

Сообщение Dimitry Sibiryakov » 30 янв 2007, 11:05

v6y писал(а):Если так, то из какого, извиняюсь за выражение, места тогда должна вызываться ib_util_malloc?
В каком месте ее ld найдет, из такого она и загрузится - отвратительнейшее свойство линуксового загрузчика, которое некоторые считают фичей.

Ответить