[Uml-devel] HEAD: crash when adding operation + fix for it

Heiko Nardmann heiko.nardmann at onlinehome.de
Fri Aug 20 10:46:01 UTC 2004


I have yesterday evening and today built HEAD and both times experienced the 
same.

How to reproduce it:

1) create a new class, e.g. "new_class"

2) create a new operation. inside the dialog when pressing "ok" umbrello 
crashes.

So I do not have anything like Insure or Purify ... and my 300MHz machine is 
definitely not worth a try with valgrind; I have tried valgrind today at work 
with a 2.8GHz machine which works definitely better and let me locate the 
problem.

To see whats the problem I have attached the valgrind log and the patch 
file ...

-- 
Heiko Nardmann
-------------- next part --------------
==17535== Memcheck, a.k.a. Valgrind, a memory error detector for x86-linux.
==17535== Copyright (C) 2002-2003, and GNU GPL'd, by Julian Seward.
==17535== Using valgrind-2.0.0, a program supervision framework for x86-linux.
==17535== Copyright (C) 2000-2003, and GNU GPL'd, by Julian Seward.
==17535== 
==17535== My PID = 17535, parent PID = 17534.  Prog and args are:
==17535==    /opt/umbrello/bin/umbrello
==17535== Estimated CPU clock rate is 2814 MHz
==17535== For more details, rerun with: -v
==17535== 
==17535== Syscall param writev(vector[...]) contains uninitialised or unaddressable byte(s)
==17535==    at 0x40187AD1: vgAllRoadsLeadToRome_writev (in /usr/lib/valgrind/valgrind.so)
==17535==    by 0x40187B0D: __writev (in /usr/lib/valgrind/valgrind.so)
==17535==    by 0x41408F9D: _X11TransSocketWritev (in /usr/X11R6/lib/libX11.so.6.2)
==17535==    by 0x4140860E: _X11TransWritev (in /usr/X11R6/lib/libX11.so.6.2)
==17535==    by 0x413EBE79: _XSend (in /usr/X11R6/lib/libX11.so.6.2)
==17535==    by 0x413DF405: PutSubImage (in /usr/X11R6/lib/libX11.so.6.2)
==17535==    Address 0x453DD21A is 22 bytes inside a block of size 528 alloc'd
==17535==    at 0x4002ACB4: malloc (in /usr/lib/valgrind/vgskin_memcheck.so)
==17535==    by 0x413E9184: _XAllocScratch (in /usr/X11R6/lib/libX11.so.6.2)
==17535==    by 0x413DF112: PutSubImage (in /usr/X11R6/lib/libX11.so.6.2)
==17535==    by 0x413DF672: XPutImage (in /usr/X11R6/lib/libX11.so.6.2)
==17535==    by 0x40D83E3A: QPixmap::convertFromImage(QImage const&, int) (in /usr/lib/qt3/lib/libqt-mt.so.3.3.1)
==17535==    by 0x40E42B2A: QPixmap::load(QString const&, char const*, int) (in /usr/lib/qt3/lib/libqt-mt.so.3.3.1)
==17535== 
==17535== Conditional jump or move depends on uninitialised value(s)
==17535==    at 0x818AA20: UMLListView::setDocument(UMLDoc*) (umllistview.cpp:621)
==17535==    by 0x816F979: UMLApp::initView() (uml.cpp:392)
==17535==    by 0x816C6E7: UMLApp::UMLApp(QWidget*, char const*) (uml.cpp:81)
==17535==    by 0x81553BE: main (main.cpp:50)
==17535==    by 0x416429B1: __libc_start_main (in /lib/libc.so.6)
==17535==    by 0x8102E20: ??? (start.S:102)
==17535== 
==17535== Syscall param write(buf) contains uninitialised or unaddressable byte(s)
==17535==    at 0x416D8058: __GI___libc_write (in /lib/libc.so.6)
==17535==    by 0x414C774D: _IceTransSocketWrite (in /usr/X11R6/lib/libICE.so.6.3)
==17535==    by 0x414C5A0E: _IceTransWrite (in /usr/X11R6/lib/libICE.so.6.3)
==17535==    by 0x414BF7BA: _IceWrite (in /usr/X11R6/lib/libICE.so.6.3)
==17535==    by 0x414BF891: IceFlush (in /usr/X11R6/lib/libICE.so.6.3)
==17535==    by 0x414B1BD4: SmcSetProperties (in /usr/X11R6/lib/libSM.so.6.0)
==17535==    Address 0x4538E660 is 12 bytes inside a block of size 1024 alloc'd
==17535==    at 0x4002B132: calloc (in /usr/lib/valgrind/vgskin_memcheck.so)
==17535==    by 0x414BC9BD: IceOpenConnection (in /usr/X11R6/lib/libICE.so.6.3)
==17535==    by 0x414B1EBE: SmcOpenConnection (in /usr/X11R6/lib/libSM.so.6.0)
==17535==    by 0x40D5B1A0: QSessionManager::QSessionManager(QApplication*, QString&, QString&) (in /usr/lib/qt3/lib/libqt-mt.so.3.3.1)
==17535==    by 0x40DD39AF: QApplication::initialize(int, char**) (in /usr/lib/qt3/lib/libqt-mt.so.3.3.1)
==17535==    by 0x40DD48A5: QApplication::construct(int&, char**, QApplication::Type) (in /usr/lib/qt3/lib/libqt-mt.so.3.3.1)
==17535== 
==17535== Invalid read of size 4
==17535==    at 0x41102899: QString::QString(QString const&) (in /usr/lib/qt3/lib/libqt-mt.so.3.3.1)
==17535==    by 0x815E81C: UMLOperation::isConstructorOperation() (operation.cpp:247)
==17535==    by 0x825F550: CPPSourceCodeOperation::updateMethodDeclaration() (cppsourcecodeoperation.cpp:67)
==17535==    by 0x825FAF6: CPPSourceCodeOperation::init(CPPSourceCodeDocument*) (cppsourcecodeoperation.cpp:112)
==17535==    by 0x825F0F3: CPPSourceCodeOperation::CPPSourceCodeOperation(CPPSourceCodeDocument*, UMLOperation*, QString const&, QString const&) (cppsourcecodeoperation.cpp:28)
==17535==    by 0x825E3AB: CPPSourceCodeDocument::newCodeOperation(UMLOperation*) (cppsourcecodedocument.cpp:135)
==17535==    Address 0x3C is not stack'd, malloc'd or free'd
==17535== Warning: client attempted to close Valgrind's logfile fd (3).
==17535==    Use --logfile-fd=<number> to select an alternative logfile fd.
==17535== Warning: invalid file descriptor 9 in syscall write()
==17535== discard syms in /usr/lib/gconv/ISO8859-1.so due to munmap()
==17535== 
==17535== ERROR SUMMARY: 14 errors from 4 contexts (suppressed: 1182 from 7)
==17535== malloc/free: in use at exit: 3377066 bytes in 76705 blocks.
==17535== malloc/free: 2684715 allocs, 2608010 frees, 380081648 bytes allocated.
==17535== For a detailed leak analysis,  rerun with: --leak-check=yes
==17535== For counts of detected errors, rerun with: -v
-------------- next part --------------
A non-text attachment was scrubbed...
Name: umbrello.diff
Type: text/x-diff
Size: 695 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/umbrello-devel/attachments/20040820/e8f277c6/attachment.bin>


More information about the umbrello-devel mailing list