Valgrind Reports

Milian Wolff mail at milianw.de
Thu Apr 8 13:16:42 UTC 2010


Hey all!

I've spent some time looking at KDevelop through Valgrind's memcheck (I hoped 
ot find something in regard to the crash on shutdown, but currently to no 
avail).

But I was still able to fix a few problems, not least among them one in 
KDevVarLengthArray that was triggered very often. Lets see whether that is 
positively noticable.

Anyways, there are two "issues" left where I don't really now what to do:

# Number 1
==1769== Conditional jump or move depends on uninitialised value(s)
==1769==    at 0x1E22A966: QMap<PropertyType, QMap<QString, QMap<QString, 
QStringList> > >::mutableFindNode(QMapData::Node**, PropertyType const&) const 
(qmap.h:760)
==1769==    by 0x1E227945: QMap<PropertyType, QMap<QString, QMap<QString, 
QStringList> > >::operator[](PropertyType const&) (qmap.h:507)
==1769==    by 0x1E220F3B: CMakeProjectVisitor::visit(GetPropertyAst const*) 
(cmakeprojectvisitor.cpp:1922)
==1769==    by 0x1E202DFF: GetPropertyAst::accept(CMakeAstVisitor*) const 
(cmakeast.h:377)
==1769==    by 0x1E222906: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> 
const&, int, bool) (cmakeprojectvisitor.cpp:2075)
==1769==    by 0x1E20F619: CMakeProjectVisitor::visit(IncludeAst const*) 
(cmakeprojectvisitor.cpp:514)
==1769==    by 0x1E202F5D: IncludeAst::accept(CMakeAstVisitor*) const 
(cmakeast.h:432)
==1769==    by 0x1E222906: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> 
const&, int, bool) (cmakeprojectvisitor.cpp:2075)
==1769==    by 0x1E218067: CMakeProjectVisitor::visit(IfAst const*) 
(cmakeprojectvisitor.cpp:1223)
==1769==    by 0x1E202F2B: IfAst::accept(CMakeAstVisitor*) const 
(cmakeast.h:426)
==1769==    by 0x1E222906: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> 
const&, int, bool) (cmakeprojectvisitor.cpp:2075)
==1769==    by 0x1E218067: CMakeProjectVisitor::visit(IfAst const*) 
(cmakeprojectvisitor.cpp:1223)

# Number 2

Is this a bug in utimes itself? Or in stat() ? Since the code looks perfectly 
fine to me...

==1769== Thread 8:
==1769== Syscall param utimes(tvp[1]) points to uninitialised byte(s)
==1769==    at 0x9FE4B27: utimes (utimes.c:33)
==1769==    by 0x32C7CA08: 
CppTools::FileModificationTimeWrapper::FileModificationTimeWrapper(QStringList 
const&, QString const&) (includepathresolver.cpp:122)
==1769==    by 0x32C7A911: 
CppTools::IncludePathResolver::resolveIncludePathInternal(QString const&, 
QString const&, QString const&, CppTools::SourcePathInformation const&) 
(includepathresolver.cpp:706)
==1769==    by 0x32C7A472: 
CppTools::IncludePathResolver::resolveIncludePath(QString const&, QString 
const&, int) (includepathresolver.cpp:658)
==1769==    by 0x32C78A5A: 
CppTools::IncludePathResolver::resolveIncludePath(QString const&) 
(includepathresolver.cpp:441)
==1769==    by 0x32C59BA0: IncludePathComputer::computeBackground() 
(includepathcomputer.cpp:184)
==1769==    by 0x32C5E7F2: CPPParseJob::includePaths() const 
(cppparsejob.cpp:256)
==1769==    by 0x32C5E1E0: CPPParseJob::mergeDefines(CppPreprocessEnvironment&) 
const (cppparsejob.cpp:210)
==1769==    by 0x32C6CE0B: PreprocessJob::run() (preprocessjob.cpp:157)
==1769==    by 0x67549BA: 
ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, 
ThreadWeaver::Job*) (Job.cpp:106)
==1769==    by 0x6754C2A: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) 
(Job.cpp:135)
==1769==    by 0x6757142: 
ThreadWeaver::JobCollectionJobRunner::execute(ThreadWeaver::Thread*) 
(JobCollection.cpp:82)
==1769==  Address 0x32a08180 is on thread 8's stack
==1769== 
==1769== Syscall param utimes(tvp[1]) points to uninitialised byte(s)
==1769==    at 0x9FE4B27: utimes (utimes.c:33)
==1769==    by 0x32C7CB68: CppTools::FileModificationTimeWrapper::unModify() 
(includepathresolver.cpp:154)
==1769==    by 0x32C7CBF1: 
CppTools::FileModificationTimeWrapper::~FileModificationTimeWrapper() 
(includepathresolver.cpp:169)
==1769==    by 0x32C7BD97: 
CppTools::IncludePathResolver::resolveIncludePathInternal(QString const&, 
QString const&, QString const&, CppTools::SourcePathInformation const&) 
(includepathresolver.cpp:848)
==1769==    by 0x32C7A472: 
CppTools::IncludePathResolver::resolveIncludePath(QString const&, QString 
const&, int) (includepathresolver.cpp:658)
==1769==    by 0x32C78A5A: 
CppTools::IncludePathResolver::resolveIncludePath(QString const&) 
(includepathresolver.cpp:441)
==1769==    by 0x32C59BA0: IncludePathComputer::computeBackground() 
(includepathcomputer.cpp:184)
==1769==    by 0x32C5E7F2: CPPParseJob::includePaths() const 
(cppparsejob.cpp:256)
==1769==    by 0x32C5E1E0: CPPParseJob::mergeDefines(CppPreprocessEnvironment&) 
const (cppparsejob.cpp:210)
==1769==    by 0x32C6CE0B: PreprocessJob::run() (preprocessjob.cpp:157)
==1769==    by 0x67549BA: 
ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, 
ThreadWeaver::Job*) (Job.cpp:106)
==1769==    by 0x6754C2A: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) 
(Job.cpp:135)
==1769==  Address 0x32a081f0 is on thread 8's stack


# Number 3

Imo this is a bug in either write() or Qt, no?

==1769== Thread 2:
==1769== Syscall param write(buf) points to uninitialised byte(s)
==1769==    at 0x864304B: ??? (in /lib/libpthread-2.10.1.so)
==1769==    by 0x82ECADE: QFSFileEnginePrivate::writeFdFh(char const*, long 
long) (qcore_unix_p.h:262)
==1769==    by 0x82A9472: QFile::writeData(char const*, long long) 
(qfile.cpp:1611)
==1769==    by 0x82AE887: QIODevice::write(char const*, long long) 
(qiodevice.cpp:1323)
==1769==    by 0xB838C21: 
KDevelop::Bucket<KDevelop::PersistentSymbolTableItem, 
KDevelop::PersistentSymbolTableRequestItem, true, 0u>::store(QFile*, unsigned 
long) (itemrepository.h:408)
==1769==    by 0xB837F4C: 
KDevelop::ItemRepository<KDevelop::PersistentSymbolTableItem, 
KDevelop::PersistentSymbolTableRequestItem, true, false, 0u, 
1048576u>::storeBucket(unsigned int) const (itemrepository.h:2552)
==1769==    by 0xB835D5C: 
KDevelop::ItemRepository<KDevelop::PersistentSymbolTableItem, 
KDevelop::PersistentSymbolTableRequestItem, true, false, 0u, 
1048576u>::store() (itemrepository.h:2077)
==1769==    by 0xB857649: KDevelop::ItemRepositoryRegistry::store() 
(itemrepository.cpp:344)
==1769==    by 0xB76AEB3: KDevelop::DUChainPrivate::doMoreCleanup(int, bool) 
(duchain.cpp:856)
==1769==    by 0xB7677ED: KDevelop::DUChainPrivate::CleanupThread::run() 
(duchain.cpp:294)
==1769==    by 0x82279C4: QThreadPrivate::start(void*) (qthread_unix.cpp:248)
==1769==    by 0x863BA03: start_thread (pthread_create.c:300)
==1769==  Address 0x3540dc7e is 430 bytes inside a block of size 65,536 
alloc'd
==1769==    at 0x4C255E4: operator new[](unsigned long) 
(vg_replace_malloc.c:264)
==1769==    by 0xB8365F1: 
KDevelop::Bucket<KDevelop::PersistentSymbolTableItem, 
KDevelop::PersistentSymbolTableRequestItem, true, 0u>::initialize(unsigned 
int) (itemrepository.h:343)
==1769==    by 0xB830892: 
KDevelop::ItemRepository<KDevelop::PersistentSymbolTableItem, 
KDevelop::PersistentSymbolTableRequestItem, true, false, 0u, 
1048576u>::initializeBucket(unsigned int) const (itemrepository.h:2528)
==1769==    by 0xB82E02B: 
KDevelop::ItemRepository<KDevelop::PersistentSymbolTableItem, 
KDevelop::PersistentSymbolTableRequestItem, true, false, 0u, 
1048576u>::index(KDevelop::PersistentSymbolTableRequestItem const&) 
(itemrepository.h:1425)
==1769==    by 0xB82A56C: 
KDevelop::PersistentSymbolTable::addDeclaration(KDevelop::IndexedQualifiedIdentifier 
const&, KDevelop::IndexedDeclaration const&) (persistentsymboltable.cpp:204)
==1769==    by 0xB7C17B6: KDevelop::Declaration::setInSymbolTable(bool) 
(declaration.cpp:658)
==1769==    by 0xB7BFFC6: 
KDevelop::Declaration::setIdentifier(KDevelop::Identifier const&) 
(declaration.cpp:298)
==1769==    by 0x1E20D9C3: CMakeProjectVisitor::defineTarget(QString const&, 
QStringList const&, Target::Type) (cmakeprojectvisitor.cpp:370)
==1769==    by 0x1E22006A: CMakeProjectVisitor::visit(CustomTargetAst const*) 
(cmakeprojectvisitor.cpp:1833)
==1769==    by 0x1E202881: CustomTargetAst::accept(CMakeAstVisitor*) const 
(cmakeast.h:112)
==1769==    by 0x1E222906: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> 
const&, int, bool) (cmakeprojectvisitor.cpp:2075)
==1769==    by 0x1E218067: CMakeProjectVisitor::visit(IfAst const*) 
(cmakeprojectvisitor.cpp:1223)
==1769== 

-- 
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20100408/3b769bc5/attachment.sig>


More information about the KDevelop-devel mailing list