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