[Uml-devel] Valgrind reports more then 30.000 errors...

Sebastian Stein seb_stein at gmx.de
Thu Oct 16 03:59:14 UTC 2003


I tried to run Umbrello with valgrind and valgrind stopped execution,
because there where more then 30.000 errors. Some are missing signals we try
to connect, a lot of uninitialized use of variables (mainly in code
generator stuff) and some illegal reads.

on startup:

QObject::connect: No such signal UMLClassifier::operationAdded(UMLObject*)
QObject::connect:  (sender name:   'UMLObject')
QObject::connect:  (receiver name: 'ACodeDocument')
QObject::connect: No such signal UMLClassifier::operationRemoved(UMLObject*)
QObject::connect:  (sender name:   'UMLObject')
QObject::connect:  (receiver name: 'ACodeDocument')

Now I add 2 classes and I try to make a generalisation between both:

==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80DA94A: CodeClassField::getTypeName()
(codeclassfield.cpp:102)
==19359==    by 0x40275B65:
JavaCodeClassFieldDeclarationBlock::updateContent()
(javacodeclassfielddeclarationblock.cpp:60)
==19359==    by 0x4027591F:
JavaCodeClassFieldDeclarationBlock::JavaCodeClassFieldDeclarationBlock(CodeClassField*)
(javacodeclassfielddeclarationblock.cpp:28)
==19359==    by 0x40269F58:
JavaClassifierCodeDocument::newDeclarationCodeBlock(CodeClassField*)
(javaclassifiercodedocument.cpp:164)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x40268DC3: JavaCodeClassField::getFieldName()
(javacodeclassfield.cpp:65)
==19359==    by 0x40275B77:
JavaCodeClassFieldDeclarationBlock::updateContent()
(javacodeclassfielddeclarationblock.cpp:61)
==19359==    by 0x4027591F:
JavaCodeClassFieldDeclarationBlock::JavaCodeClassFieldDeclarationBlock(CodeClassField*)
(javacodeclassfielddeclarationblock.cpp:28)
==19359==    by 0x40269F58:
JavaClassifierCodeDocument::newDeclarationCodeBlock(CodeClassField*)
(javaclassifiercodedocument.cpp:164)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x40275B9B:
JavaCodeClassFieldDeclarationBlock::updateContent()
(javacodeclassfielddeclarationblock.cpp:64)
==19359==    by 0x4027591F:
JavaCodeClassFieldDeclarationBlock::JavaCodeClassFieldDeclarationBlock(CodeClassField*)
(javacodeclassfielddeclarationblock.cpp:28)
==19359==    by 0x40269F58:
JavaClassifierCodeDocument::newDeclarationCodeBlock(CodeClassField*)
(javaclassifiercodedocument.cpp:164)
==19359==    by 0x80DABAB: CodeClassField::newDeclarationCodeBlock()
(codeclassfield.cpp:200)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x40275F5E:
JavaCodeClassFieldDeclarationBlock::updateContent()
(javacodeclassfielddeclarationblock.cpp:70)
==19359==    by 0x4027591F:
JavaCodeClassFieldDeclarationBlock::JavaCodeClassFieldDeclarationBlock(CodeClassField*)
(javacodeclassfielddeclarationblock.cpp:28)
==19359==    by 0x40269F58:
JavaClassifierCodeDocument::newDeclarationCodeBlock(CodeClassField*)
(javaclassifiercodedocument.cpp:164)
==19359==    by 0x80DABAB: CodeClassField::newDeclarationCodeBlock()
(codeclassfield.cpp:200)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x40268DC3: JavaCodeClassField::getFieldName()
(javacodeclassfield.cpp:65)
==19359==    by 0x402720E2:
JavaCodeAccessorMethod::updateMethodDeclaration()
(javacodeaccessormethod.cpp:136)
==19359==    by 0x40270CA1:
JavaCodeAccessorMethod::JavaCodeAccessorMethod(JavaCodeClassField*,
CodeAccessorMethod::AccessorType) (javacodeaccessormethod.cpp:36)
==19359==    by 0x40269FED:
JavaClassifierCodeDocument::newCodeAccessorMethod(CodeClassField*,
CodeAccessorMethod::AccessorType) (javaclassifiercodedocument.cpp:180)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80DA94A: CodeClassField::getTypeName()
(codeclassfield.cpp:102)
==19359==    by 0x402720F4:
JavaCodeAccessorMethod::updateMethodDeclaration()
(javacodeaccessormethod.cpp:137)
==19359==    by 0x40270CA1:
JavaCodeAccessorMethod::JavaCodeAccessorMethod(JavaCodeClassField*,
CodeAccessorMethod::AccessorType) (javacodeaccessormethod.cpp:36)
==19359==    by 0x40269FED:
JavaClassifierCodeDocument::newCodeAccessorMethod(CodeClassField*,
CodeAccessorMethod::AccessorType) (javaclassifiercodedocument.cpp:180)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80DA9D7: CodeClassField::getListObjectType()
(codeclassfield.cpp:120)
==19359==    by 0x40272106:
JavaCodeAccessorMethod::updateMethodDeclaration()
(javacodeaccessormethod.cpp:138)
==19359==    by 0x40270CA1:
JavaCodeAccessorMethod::JavaCodeAccessorMethod(JavaCodeClassField*,
CodeAccessorMethod::AccessorType) (javacodeaccessormethod.cpp:36)
==19359==    by 0x40269FED:
JavaClassifierCodeDocument::newCodeAccessorMethod(CodeClassField*,
CodeAccessorMethod::AccessorType) (javaclassifiercodedocument.cpp:180)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x40268DC3: JavaCodeClassField::getFieldName()
(javacodeclassfield.cpp:65)
==19359==    by 0x40270E84: JavaCodeAccessorMethod::updateContent()
(javacodeaccessormethod.cpp:69)
==19359==    by 0x40270CA9:
JavaCodeAccessorMethod::JavaCodeAccessorMethod(JavaCodeClassField*,
CodeAccessorMethod::AccessorType) (javacodeaccessormethod.cpp:37)
==19359==    by 0x40269FED:
JavaClassifierCodeDocument::newCodeAccessorMethod(CodeClassField*,
CodeAccessorMethod::AccessorType) (javaclassifiercodedocument.cpp:180)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80DBD62: CodeClassField::initAccessorMethods()
(codeclassfield.cpp:437)
==19359==    by 0x80DC2D6: CodeClassField::initFields()
(codeclassfield.cpp:589)
==19359==    by 0x40268AA2:
JavaCodeClassField::JavaCodeClassField(JavaClassifierCodeDocument*,
UMLRole*) (javacodeclassfield.cpp:35)
==19359==    by 0x4026A07D:
JavaClassifierCodeDocument::newCodeClassField(UMLRole*)
(javaclassifiercodedocument.cpp:190)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80DBED7: CodeClassField::updateContent()
(codeclassfield.cpp:478)
==19359==    by 0x80DC2DE: CodeClassField::initFields()
(codeclassfield.cpp:590)
==19359==    by 0x40268AA2:
JavaCodeClassField::JavaCodeClassField(JavaClassifierCodeDocument*,
UMLRole*) (javacodeclassfield.cpp:35)
==19359==    by 0x4026A07D:
JavaClassifierCodeDocument::newCodeClassField(UMLRole*)
(javaclassifiercodedocument.cpp:190)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80DBED7: CodeClassField::updateContent()
(codeclassfield.cpp:478)
==19359==    by 0x80DABE4: CodeClassField::setWriteOutMethods(bool)
(codeclassfield.cpp:215)
==19359==    by 0x4026B69C: JavaClassifierCodeDocument::updateContent()
(javaclassifiercodedocument.cpp:397)
==19359==    by 0x80D2C32: ClassifierCodeDocument::syncronize()
(classifiercodedocument.cpp:351)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80D1E4F:
ClassifierCodeDocument::getSpecificClassFields(CodeClassField::ClassFieldType,
bool) (classifiercodedocument.cpp:71)
==19359==    by 0x4026B6C4: JavaClassifierCodeDocument::updateContent()
(javaclassifiercodedocument.cpp:401)
==19359==    by 0x80D2C32: ClassifierCodeDocument::syncronize()
(classifiercodedocument.cpp:351)
==19359==    by 0x80D2DD1: ClassifierCodeDocument::syncToParent()
(classifiercodedocument.cpp:380)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80D1E4F:
ClassifierCodeDocument::getSpecificClassFields(CodeClassField::ClassFieldType,
bool) (classifiercodedocument.cpp:71)
==19359==    by 0x4026B6DE: JavaClassifierCodeDocument::updateContent()
(javaclassifiercodedocument.cpp:402)
==19359==    by 0x80D2C32: ClassifierCodeDocument::syncronize()
(classifiercodedocument.cpp:351)
==19359==    by 0x80D2DD1: ClassifierCodeDocument::syncToParent()
(classifiercodedocument.cpp:380)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80D1DCF:
ClassifierCodeDocument::getSpecificClassFields(CodeClassField::ClassFieldType)
(classifiercodedocument.cpp:59)
==19359==    by 0x4026B6F5: JavaClassifierCodeDocument::updateContent()
(javaclassifiercodedocument.cpp:405)
==19359==    by 0x80D2C32: ClassifierCodeDocument::syncronize()
(classifiercodedocument.cpp:351)
==19359==    by 0x80D2DD1: ClassifierCodeDocument::syncToParent()
(classifiercodedocument.cpp:380)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80D1DCF:
ClassifierCodeDocument::getSpecificClassFields(CodeClassField::ClassFieldType)
(classifiercodedocument.cpp:59)
==19359==    by 0x4026B70F: JavaClassifierCodeDocument::updateContent()
(javaclassifiercodedocument.cpp:406)
==19359==    by 0x80D2C32: ClassifierCodeDocument::syncronize()
(classifiercodedocument.cpp:351)
==19359==    by 0x80D2DD1: ClassifierCodeDocument::syncToParent()
(classifiercodedocument.cpp:380)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80D1DCF:
ClassifierCodeDocument::getSpecificClassFields(CodeClassField::ClassFieldType)
(classifiercodedocument.cpp:59)
==19359==    by 0x4026B729: JavaClassifierCodeDocument::updateContent()
(javaclassifiercodedocument.cpp:407)
==19359==    by 0x80D2C32: ClassifierCodeDocument::syncronize()
(classifiercodedocument.cpp:351)
==19359==    by 0x80D2DD1: ClassifierCodeDocument::syncToParent()
(classifiercodedocument.cpp:380)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80D200E:
ClassifierCodeDocument::hasObjectVectorClassFields()
(classifiercodedocument.cpp:104)
==19359==    by 0x4026B9D5: JavaClassifierCodeDocument::updateContent()
(javaclassifiercodedocument.cpp:428)
==19359==    by 0x80D2C32: ClassifierCodeDocument::syncronize()
(classifiercodedocument.cpp:351)
==19359==    by 0x80D2DD1: ClassifierCodeDocument::syncToParent()
(classifiercodedocument.cpp:380)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80DBED7: CodeClassField::updateContent()
(codeclassfield.cpp:478)
==19359==    by 0x80DBC60: CodeClassField::syncronize()
(codeclassfield.cpp:386)
==19359==    by 0x80D2C88: ClassifierCodeDocument::syncClassFields()
(classifiercodedocument.cpp:361)
==19359==    by 0x80D2C3A: ClassifierCodeDocument::syncronize()
(classifiercodedocument.cpp:352)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x40268DC3: JavaCodeClassField::getFieldName()
(javacodeclassfield.cpp:65)
==19359==    by 0x402720E2:
JavaCodeAccessorMethod::updateMethodDeclaration()
(javacodeaccessormethod.cpp:136)
==19359==    by 0x80EA7CF: CodeMethodBlock::syncToParent()
(codemethodblock.cpp:181)
==19359==    by 0x80DBC88: CodeClassField::syncronize()
(codeclassfield.cpp:389)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80DA94A: CodeClassField::getTypeName()
(codeclassfield.cpp:102)
==19359==    by 0x402720F4:
JavaCodeAccessorMethod::updateMethodDeclaration()
(javacodeaccessormethod.cpp:137)
==19359==    by 0x80EA7CF: CodeMethodBlock::syncToParent()
(codemethodblock.cpp:181)
==19359==    by 0x80DBC88: CodeClassField::syncronize()
(codeclassfield.cpp:389)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80DA9D7: CodeClassField::getListObjectType()
(codeclassfield.cpp:120)
==19359==    by 0x40272106:
JavaCodeAccessorMethod::updateMethodDeclaration()
(javacodeaccessormethod.cpp:138)
==19359==    by 0x80EA7CF: CodeMethodBlock::syncToParent()
(codemethodblock.cpp:181)
==19359==    by 0x80DBC88: CodeClassField::syncronize()
(codeclassfield.cpp:389)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x40268DC3: JavaCodeClassField::getFieldName()
(javacodeclassfield.cpp:65)
==19359==    by 0x40270E84: JavaCodeAccessorMethod::updateContent()
(javacodeaccessormethod.cpp:69)
==19359==    by 0x80EA7F8: CodeMethodBlock::syncToParent()
(codemethodblock.cpp:187)
==19359==    by 0x80DBC88: CodeClassField::syncronize()
(codeclassfield.cpp:389)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80DCBAE: CodeClassFieldDeclarationBlock::syncToParent()
(codeclassfielddeclarationblock.cpp:138)
==19359==    by 0x80DBCB0: CodeClassField::syncronize()
(codeclassfield.cpp:392)
==19359==    by 0x80D2C88: ClassifierCodeDocument::syncClassFields()
(classifiercodedocument.cpp:361)
==19359==    by 0x80D2C3A: ClassifierCodeDocument::syncronize()
(classifiercodedocument.cpp:352)
==19359==
==19359== Conditional jump or move depends on uninitialised value(s)
==19359==    at 0x80DA94A: CodeClassField::getTypeName()
(codeclassfield.cpp:102)
==19359==    by 0x40275B65:
JavaCodeClassFieldDeclarationBlock::updateContent() (javacodeclassfi155)
==19359==
==19359== Invalid read of size 1
==19359==    at 0x40022A0C: memcpy (mac_replace_strmem.c:256)
==19359==    by 0x40FE7858: QString::operator+=(QString const&) (in
/usr/lib/qt-3.2.1/lib/libqt-mt.so.3.2.1)
==19359==    by 0x40275D9E:
JavaCodeClassFieldDeclarationBlock::updateContent() (qstring.h:1051)
==19359==    by 0x80DCBD8: CodeClassFieldDeclarationBlock::syncToParent()
(codeclassfielddeclarationblock.cpp:155)
==19359==    Address 0xBC61CFF is not stack'd, malloc'd or free'd

Now valgrind stops, because too many errors occured.

Unfortunally I don't have the time to fix anything at the moment, hopefully
this will change in some weeks.

Steinchen
-- 
Umbrello UML Modeller
Description     : UML diagram drawing tool for KDE with code generation
Homepage        : http://www.umbrello.org/
Bug Reports     : http://bugs.kde.org/
CVS             : kdesdk/umbrello on cvs.kde.org:/home/kde




More information about the umbrello-devel mailing list