Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: libgtk2.0-bin.deb undefined symbol


  • Subject: Re: lug-bg: libgtk2.0-bin.deb undefined symbol
  • From: George Danchev <danchev@xxxxxxxxx>
  • Date: Thu, 30 Sep 2004 16:14:58 +0300

On Thursday 30 September 2004 12:44, peyo wrote:
--cut--
> old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) = 0x407d0000
> забелязвам смяна на режима на достъп към read/write
>  --> mprotect(0x402fe000, 376832, PROT_READ|PROT_WRITE) = 0
> и тук веднага(без междувременно да се случва нещо там) смяна към read/exec
> --> mprotect(0x402fe000, 376832, PROT_READ|PROT_EXEC) = 0

защо отива на mprotect() остава загадка за мен.

> writev(2, [{"gtk-query-immodules-2.0", 23}, {": ", 2}, {"relocation error",
> 16}, {": ", 2}, {"/usr/lib/libgtk-x11-2.0.so.0", 28}, {": ", 2},
> {"undefined symbol: gdk_threads_lo"..., 34}, {"", 0}, {"", 0}, {"\n", 1}],
> 10) = 108 exit_group(127)                         = ?
>
> Последните три реда ги няма в читавото изпълнение, което означава, че между
> "мапването " и "ънмапването"(което го има в нормалното изпълнение) се
> случва нещо, което предизвиква последователна смяна на режима на
> достъп(което пък въобще го няма в нормалното изпълнение)

Да не би да са променени някои променливи на sysctl, като тази:
cat /proc/sys/vm/max_map_count
65536

max_map_count:

This file contains the maximum number of memory map areas a process
may have. Memory map areas are used as a side-effect of calling
malloc, directly by mmap and mprotect, and also when loading shared
libraries.

While most applications need less than a thousand maps, certain
programs, particularly malloc debuggers, may consume lots of them,
e.g., up to one or two maps per allocation.

The default value is 65536.

> Което пък ме кара да се обърна към gdb да видя ако мога какво става
> междувременно.

Ами за gdb ок, може да се пребилдне libc6 от debian source package-a
(apt-get build-dep libc6
apt-get source libc6
add -g, set my version 
debian/rules binary)

Ама как ще се закачи и наблюдава линкера какво прави и защо го прави малко ми 
е мътно ... ако има спецове да казват .... Аз съм по-склонен, че gtk/gdk са 
ок, и нещо от линкера който е от libc6 или от кърнела ще да е ?
С това [1] бързо ще се оправиш с gdb, след като имаш пребилднато libc6 дебъг 
символите (rms - кратко и ясно ;-), но специално за линкера какво трябва да 
прави и как ми е мътно ;-) Може да се намесят дебъг гурутата да кажат.

[1] http://www.unknownroad.com/rtfm/gdbtut/

-- 
pub 4096R/0E4BD0AB  2003-03-18  <keyserver.bu.edu ; pgp.mit.edu>
fingerprint 1AE7 7C66 0A26 5BFF DF22 5D55 1C57 0C89 0E4B D0AB 
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.