Board.KolibriOS.org
http://board.kolibrios.org/

menuetlibc: sbrk/init_brk
http://board.kolibrios.org/viewtopic.php?f=33&t=2097
Page 1 of 2

Author:  SoUrcerer [ Tue Jun 05, 2012 10:29 am ]
Post subject:  menuetlibc: sbrk/init_brk

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

Author:  Serge [ Tue Jun 05, 2012 11:48 am ]
Post subject:  Re: menuetlibc: sbrk/init_brk

Это строе никсовое управление памятью. newlib его не использует. Аналог в Колибри ф64.

Author:  CleverMouse [ Tue Jun 05, 2012 3:39 pm ]
Post subject:  Re: menuetlibc: sbrk/init_brk

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

Author:  SoUrcerer [ Tue Jun 05, 2012 5:01 pm ]
Post subject:  Re: menuetlibc: sbrk/init_brk

Памяти валом и у системы, и у приложения. И это странно.

Author:  FireWall [ Tue Jun 05, 2012 5:54 pm ]
Post subject:  Re: menuetlibc: sbrk/init_brk

А дизассемблировать эти функции не пробовал? Или под отладчиком выяснить команду процессора, на которой вылетает приложение?

Author:  CleverMouse [ Wed Jun 27, 2012 10:01 pm ]
Post subject:  Re: menuetlibc: sbrk/init_brk

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

Author:  punk_joker [ Thu Aug 01, 2013 10:30 pm ]
Post subject:  Re: menuetlibc: sbrk/init_brk

проблемы со сборкой библиотеки:

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$

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

Author:  SoUrcerer [ Thu Aug 01, 2013 11:34 pm ]
Post subject:  Re: menuetlibc: sbrk/init_brk

64х-битная ОС?*

Author:  punk_joker [ Fri Aug 02, 2013 12:23 am ]
Post subject:  Re: menuetlibc: sbrk/init_brk

32x

Author:  SoUrcerer [ Fri Aug 02, 2013 8:46 am ]
Post subject:  Re: menuetlibc: sbrk/init_brk

Переменную окружения MENUETDEV устанавливал?

Author:  punk_joker [ Fri Aug 02, 2013 10:20 am ]
Post subject:  Re: menuetlibc: sbrk/init_brk

Уже все нормально :-) Толи я при создании переменной окружения путь не правильный указал, толи из-за добавления в .bash_profile.

Author:  z525 [ Tue Jun 10, 2014 8:40 pm ]
Post subject:  Re: menuetlibc: sbrk/init_brk

Скажите пожалуйста куда пропала библиотека menuetlibc ? С SVN имею ввиду.
Последний раз была в Rev. 4798 .

Author:  SoUrcerer [ Wed Jun 11, 2014 1:17 pm ]
Post subject:  Re: menuetlibc: sbrk/init_brk

Да, я тоже заметил пропажу. Интересно, кто удалил.

Author:  Mario_r4 [ Wed Jun 11, 2014 1:30 pm ]
Post subject:  Re: menuetlibc: sbrk/init_brk

Слонёнок вряд ли сознается сам.

Author:  0CodErr [ Wed Jun 11, 2014 1:34 pm ]
Post subject:  Re: menuetlibc: sbrk/init_brk

Вот так временное становится постоянным :)

Page 1 of 2 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/