Portál AbcLinuxu, 12. května 2025 02:50

Dotaz: corrupted double-linked list

19.6.2009 21:23 dementni.lojzik | skóre: 19 | blog: ze zivota na vsi
corrupted double-linked list
Přečteno: 457×
Odpovědět | Admin
Ahoj, v jednom "genialnim" frameworku se pokousim o build balicku. Probiha nasledovne: 1. skompiluji se zdrojaky (C++ a F77), 2. vytvori se z toho dynamicka knihovna (*.so), 3. vygeneruje se cosi jako wrapper daneho balicku pro python. Cele se to buildi pres cmt. Kroky 1. i 2. probehnou v poradku, pri generovani pythonovskych souboru to skonci nasledujici chybou:
*** glibc detected *** corrupted double-linked list: 0x00d44858 ***
Zajimal by me vas nazor, jestli muze byt chyba u me. Jestli myslite ze u me, v cem by to podle vas mohlo byt? (me uz vsechny napady dosly:-(). Predem diky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.6.2009 18:44 Ivan
Rozbalit Rozbalit vše Re: corrupted double-linked list
Odpovědět | | Sbalit | Link | Blokovat | Admin

Teoreticky by mohla byt chyba i u vas. Napriklad:

1. Mam tridu a:

class A :

int a;

#ifdef DEBUG

int b;

#endif

};

2. Zkompiluju knihovnu libA s -DDEBUG na 32bit. Vsechny funkce v knihovne si mysli, ze trida A zabira 8 bajtu.

3. Do nejakeho frameworku prikompiluju wrapper nad knihovnou libA, tzn, pouziju stejne headery, ale pouzijou jina #define makra behem kompilace. Funkce wrapperu si mysli, ze trida A zabira 4 bajty.

 

Pak uz staci hodne malo, aby dochazelo k nechtenym prepsanim pameti a chyba "*** glibc detected *** corrupted double-linked list: 0x00d44858 **" je jednim ze symptomu.

Dalsi vysvetleni je samorzejme mnohem jednodussi, proste je to prasacky napsany.

 

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.