Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Jul 24, 2019 1:33 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 18 posts ]  Go to page 1 2 Next
Author Message
PostPosted: Tue Jun 05, 2012 10:29 am 
Offline

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


Top
   
PostPosted: Tue Jun 05, 2012 11:48 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Это строе никсовое управление памятью. newlib его не использует. Аналог в Колибри ф64.


Top
   
PostPosted: Tue Jun 05, 2012 3:39 pm 
Offline
Kernel Developer
User avatar

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

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


Top
   
PostPosted: Tue Jun 05, 2012 5:01 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Памяти валом и у системы, и у приложения. И это странно.


Top
   
PostPosted: Tue Jun 05, 2012 5:54 pm 
Offline

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


Top
   
PostPosted: Wed Jun 27, 2012 10:01 pm 
Offline
Kernel Developer
User avatar

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

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


Top
   
PostPosted: Thu Aug 01, 2013 10:30 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1150
проблемы со сборкой библиотеки:

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$

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

_________________
я лишь учусь


Top
   
PostPosted: Thu Aug 01, 2013 11:34 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
64х-битная ОС?*


Top
   
PostPosted: Fri Aug 02, 2013 12:23 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1150
32x

_________________
я лишь учусь


Top
   
PostPosted: Fri Aug 02, 2013 8:46 am 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Переменную окружения MENUETDEV устанавливал?


Top
   
PostPosted: Fri Aug 02, 2013 10:20 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1150
Уже все нормально :-) Толи я при создании переменной окружения путь не правильный указал, толи из-за добавления в .bash_profile.

_________________
я лишь учусь


Top
   
PostPosted: Tue Jun 10, 2014 8:40 pm 
Offline

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


Top
   
PostPosted: Wed Jun 11, 2014 1:17 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Да, я тоже заметил пропажу. Интересно, кто удалил.


Top
   
PostPosted: Wed Jun 11, 2014 1:30 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Слонёнок вряд ли сознается сам.

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


Top
   
PostPosted: Wed Jun 11, 2014 1:34 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Вот так временное становится постоянным :)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 18 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited