Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб окт 21, 2017 7:38 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 18 сообщений ]  На страницу 1 2 След.
Автор Сообщение
 Заголовок сообщения: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Вт июн 05, 2012 10:29 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
За год работы с menuetlibc и newlib я стал более опытен и научился работать с map-файлами.
И вот сегодня я осознал, что основная часть программ (которую мне удалось собрать для Колибри, но которая всё же падает при запуске) падает при обращении либо к init_brk, либо sbrk. Что вообще эти функции должны делать и почему при обращении к ним программа может упасть? По идее, эти функции должны управлять памятью, верно? В каких случаях тогда может наблюдаться эпик фейл?
Если разобраться с этими багами, вероятно, в Колибри заработают еще пару эмуляторов и языков программирования. Да и вообще, лучше без багов, чем с ними :)


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Вт июн 05, 2012 11:48 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Это строе никсовое управление памятью. newlib его не использует. Аналог в Колибри ф64.


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Вт июн 05, 2012 3:39 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1599
Судя по коду, init_brk инициализирует кучу, sbrk выделяет очередной блок динамической памяти из кучи. На них основаны malloc/realloc/free, которые из этого блока нарезают уже маленькие области. Почему падает, вопрос к телепатам. Может, памяти не хватает?

_________________
Сделаем мир лучше!


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Вт июн 05, 2012 5:01 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Памяти валом и у системы, и у приложения. И это странно.


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Вт июн 05, 2012 5:54 pm 
Не в сети

Зарегистрирован: Ср сен 15, 2010 7:22 pm
Сообщения: 101
А дизассемблировать эти функции не пробовал? Или под отладчиком выяснить команду процессора, на которой вылетает приложение?


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Ср июн 27, 2012 10:01 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1599
В menuetlibc, лежащей на svn, могут быть проблемы, если приложение многопоточное и много потоков пытаются выделять/освобождать память параллельно. Для исправления достаточно вставить вызовы malloc_lock() в начало malloc() и free(), src/libc/ansi/stdlib/malloc.c, и malloc_unlock() перед каждым return и в конце free().

_________________
Сделаем мир лучше!


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Чт авг 01, 2013 10:30 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1076
проблемы со сборкой библиотеки:

joker@joker-VirtualBox:~$ cd menuetlibc
joker@joker-VirtualBox:~/menuetlibc$ make
Building library for linux
gcc mkversion.c -o mkversion
./mkversion < version > include/libc/version.h
make -C linuxtools
make[1]: Вход в каталог `/home/joker/menuetlibc/linuxtools'
Makefile:1: /osrules.mak: Нет такого файла или каталога
make[1]: *** Нет правила для сборки цели `/osrules.mak'. Останов.
make[1]: Выход из каталога `/home/joker/menuetlibc/linuxtools'
make: *** [all] Ошибка 2
joker@joker-VirtualBox:~/menuetlibc$

Настроил вроде как все правильно

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Чт авг 01, 2013 11:34 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
64х-битная ОС?*


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Пт авг 02, 2013 12:23 am 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1076
32x

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Пт авг 02, 2013 8:46 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Переменную окружения MENUETDEV устанавливал?


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Пт авг 02, 2013 10:20 am 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1076
Уже все нормально :-) Толи я при создании переменной окружения путь не правильный указал, толи из-за добавления в .bash_profile.

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Вт июн 10, 2014 8:40 pm 
Не в сети

Зарегистрирован: Вс окт 02, 2011 4:48 pm
Сообщения: 43
Скажите пожалуйста куда пропала библиотека menuetlibc ? С SVN имею ввиду.
Последний раз была в Rev. 4798 .


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Ср июн 11, 2014 1:17 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Да, я тоже заметил пропажу. Интересно, кто удалил.


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Ср июн 11, 2014 1:30 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Слонёнок вряд ли сознается сам.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: menuetlibc: sbrk/init_brk
СообщениеДобавлено: Ср июн 11, 2014 1:34 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1076
Вот так временное становится постоянным :)


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 18 сообщений ]  На страницу 1 2 След.

Часовой пояс: UTC+03:00


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

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


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB