pthreads + dmalloc

Michal Krause michal na krause.cz
Pátek Leden 28 20:55:44 CET 2000


On 28/01/2000, Cejka Rudolf wrote:
> Michal Krause <michal na krause.cz> wrote:
> > A jinak jsem uz nasel ten problem, ale stejne se mi ho nedari vyresit.
> > Ten program se nafukuje jenom kdyz volam gethostbyaddr_r(). Ale nikde
> > jsem nenasel zadne info o tom, ze by si tato funkce neco alokovala,
> > vsechno by mela dostat jako parametry :(
> 
> No vyborne - chyba je mozna okolo gethostbyaddr_r(). Takze uz jen staci
> zkompilovat system (stacily by knihovny) s ladicimi informacemi, prelozit
> program nejlepe staticky, sem tam dat ladici vypis a to by v tom byl cert,
> abyste nenasel chybu (treba memory-leak a treba prave v libc, nebo
> chyba v manualove strance, v niz zapomneli rict, ze po zavolani takoveto
> funkce je potreba udelat free(), nebo jen spatne prectena manualova
> stranka).
> 
> Ale da se ocekavat, ze chyba bude dle ocekavani zase nekde uplne jinde.

Mate pravdu, je to uplne jinde (hec, prisel jsem na to analyzou zdrojaku
a ne debuggerem :). Problem je v tom, ze nekde dal v programu se plni
hash, ktera se indexuje pomoci IP adresy a z te hashe zase stara data
maze jiny thread. Ten mazaci thread nepracuje dobre, takze to tam porad
viselo. Pokud jsem vyhodil gethostbyaddr_r, byla v promenne s adresou
stale stejna hodnota, takze se dokola prepisoval jediny node te hashe a
tak program nebobtnal. Za normalnich okolnosti vznikaly nove a nove
nody, ktere se nikdy nesmazaly.

P.S. Najit chybu pri procitani zdrojaky je fakt mnohem prijemnejsi
pocit, nez kdyz pomuze debugger :)

S pozdravem
--
Michal Krause                                                      /\
ICQ: 7665279            Informace (nejenom) ze sveta Linuxu     /\/  \
email: mike na navrcholu.cz ______ http://www.root.cz/ ______ NAVRCHOLU.cz

Co napsat do signatury, aby to nikoho nepohorsilo? Snad jedine nejakou
obecne znamou pravdu. Doufam, ze vsichni vite, ze tucnak je bylozrava ryba. 


Další informace o konferenci Linux