[Qt-interest] Static destructors errors
marc at mferland.net
marc at mferland.net
Fri Oct 16 22:19:21 CEST 2009
Quoting Thiago Macieira <thiago at kde.org>:
> Em Sexta-feira 16. Outubro 2009, às 15.54.29, marc at mferland.net escreveu:
>> We don't really know what to check anymore so any help would be
>> greatly appreciated! :)
>>
>
> You mentioned you couldn't find the problem in a small test program. Then try
> valgrinding (and helgrinding) your full app. It may point out the problem.
>
The only things related that I've found using valgrind are the following:
==6720== 278 (64 direct, 214 indirect) bytes in 1 blocks are
definitely lost in loss record 2,388 of 4,881
==6720== at 0x04a0776f: realloc (vg_replace_malloc.c:429)
==6720== by 0xdfc7d2da: QListData::realloc(int) (in
/usr/lib64/libQtCore.so.4.5.2)
==6720== by 0xdfc7d50c: QListData::append() (in
/usr/lib64/libQtCore.so.4.5.2)
==6720== by 0x004d585b: QList<QString>::append(QString const&)
(qlist.h:429)
==6720== by 0x0058c730: QStringList::operator<<(QString const&)
(qstringlist.h:87)
==6720== by 0x05960929:
__static_initialization_and_destruction_0(int, int) (enums.hpp:112)
==6720== by 0x05966733: global
==6720== by 0x059eec95: ??? (in
/home/marc/devG3/trunk/lib/libparamsys.so.1.0.0)
==6720== by 0x05958162: ??? (in
/home/marc/devG3/trunk/lib/libparamsys.so.1.0.0)
A static QStringList. Could this be related? Pretty weird since I'm
not seeing this in the test program.
Also this one:
==6720== Invalid read of size 4
==6720== at 0x004b3f66: QBasicAtomicInt::deref() (qatomic_x86_64.h:133)
==6720== by 0x004d57ee: QList<QString>::~QList() (qlist.h:533)
==6720== by 0x004d555f: QStringList::~QStringList() (qstringlist.h:67)
==6720== by 0x17a36bbf: __cxa_finalize (in /lib64/libc-2.10.1.so)
==6720== by 0x05960765: ??? (in
/home/marc/devG3/trunk/lib/libparamsys.so.1.0.0)
==6720== by 0x059eecb0: ??? (in
/home/marc/devG3/trunk/lib/libparamsys.so.1.0.0)
==6720== by 0x17a367f1: exit (in /lib64/libc-2.10.1.so)
==6720== by 0x17a1ea33: ??? (below main:0)
==6720== Address 0x8d8c9c0 is 0 bytes inside a block of size 56 free'd
==6720== at 0x04a0633d: free (vg_replace_malloc.c:323)
==6720== by 0x004d6281: QList<QString>::free(QListData::Data*)
(qlist.h:562)
==6720== by 0x004d581b: QList<QString>::~QList() (qlist.h:534)
==6720== by 0x004d555f: QStringList::~QStringList() (qstringlist.h:67)
==6720== by 0x17a36bbf: __cxa_finalize (in /lib64/libc-2.10.1.so)
==6720== by 0x0546a505: ??? (in /home/marc/devG3/trunk/lib/libflc.so.1.0.0)
==6720== by 0x054924a0: ??? (in /home/marc/devG3/trunk/lib/libflc.so.1.0.0)
==6720== by 0x17a367f1: exit (in /lib64/libc-2.10.1.so)
==6720== by 0x17a1ea33: ??? (below main:0)
Here the deref function reads 4 bytes from a previously freed
QStringList... pretty strange!
Any idea?
Regards,
Marc
More information about the Qt-interest-old
mailing list