More crashes

David Nolden zwabel at googlemail.com
Tue Dec 18 14:59:15 UTC 2007


On Tuesday 18 December 2007 15:03:48 Hamish Rodda wrote:
> Hi,
>
> Here are a few more issues:
> 1) I'm seeing tons of DeclarationBuilder::openDeclaration: Range collapsed,
> was there a regression?

See my last commit. :)

> And some crashes..:
>
> This happens 44% of the way through kdevplatform + kdevelop:
> ASSERT: "previousOfSameName || !m_definedMacroNames.contains(macro.name)"
> in file
> /opt/kde4/src/kdevelop/languages/cpp/cppduchain/environmentmanager.cpp,
> line 259
I will look into this now.

> And the following two backtraces look like QUrl threading issues:
>
> ==5675== Thread 4:
> ==5675== Invalid read of size 1
> ==5675==    at 0x4EEFBDF: _char(char**, char, ErrorInfo*) (qurl.cpp:282)
> ==5675==    by 0x4EEFCC4: _pctEncoded(char**, char*, ErrorInfo*)
> (qurl.cpp:309)
> ==5675==    by 0x4EF2204: _regName(char**, QByteArray*, ErrorInfo*)
> (qurl.cpp:744)
> ==5675==    by 0x4EF446A: _host(char**, QByteArray*, ErrorInfo*)
> (qurl.cpp:758)
> ==5675==    by 0x4EF44FE: _authority(char**, QByteArray*, QByteArray*,
> int*, ErrorInfo*) (qurl.cpp:820)
> ==5675==    by 0x4EF4654: _hierPart(char**, QByteArray*, QByteArray*, int*,
> QByteArray*, ErrorInfo*) (qurl.cpp:1016)
> ==5675==    by 0x4EF570F: QUrlPrivate::parse(QUrlPrivate::ParseOptions)
> const (qurl.cpp:3362)
> ==5675==    by 0x4EF9263: QUrlPrivate::validate() const (qurl.cpp:3303)
> ==5675==    by 0x4EF9551: QUrl::port() const (qurl.cpp:4059)
> ==5675==    by 0x62CC500: KUrl::prettyUrl(KUrl::AdjustPathOption) const
> (kurl.cpp:937)
> ==5675==    by 0x1ED0AE7D: convertFromUrls(QList<KUrl> const&)
> (preprocessjob.cpp:59)
> ==5675==    by 0x1ED0B027: PreprocessJob::run() (preprocessjob.cpp:93)
> ==5675==  Address 0x2c633567 is 31 bytes inside a block of size 128 free'd
> ==5675==    at 0x4C21F3B: free (vg_replace_malloc.c:323)
> ==5675==    by 0x4E738F0: qFree(void*) (qglobal.cpp:1965)
> ==5675==    by 0x4E7E32E: QByteArray::operator=(QByteArray const&)
> (qbytearray.cpp:811)
> ==5675==    by 0x4EF9246: QUrlPrivate::validate() const (qurl.cpp:3302)
> ==5675==    by 0x4EF9551: QUrl::port() const (qurl.cpp:4059)
> ==5675==    by 0x62CC500: KUrl::prettyUrl(KUrl::AdjustPathOption) const
> (kurl.cpp:937)
> ==5675==    by 0x1ED0AE7D: convertFromUrls(QList<KUrl> const&)
> (preprocessjob.cpp:59)
> ==5675==    by 0x1ED0B027: PreprocessJob::run() (preprocessjob.cpp:93)
> ==5675==    by 0x1ED05238: CPPParseJob::parseForeground()
> (cppparsejob.cpp:101)
> ==5675==    by 0x1ED0A4EC: PreprocessJob::sourceNeeded(QString&,
> rpp::Preprocessor::IncludeType, int, bool) (preprocessjob.cpp:354)
> ==5675==    by 0x1F23F55A: rpp::pp::handle_include(bool, rpp::Stream&,
> rpp::Stream&) (pp-engine.cpp:306)
> ==5675==    by 0x1F23F67A: rpp::pp::handle_directive(QString const&,
> rpp::Stream&, rpp::Stream&) (pp-engine.cpp:240)
>
> ==8011== Thread 5:
> ==8011== Invalid read of size 1
> ==8011==    at 0x4EEFBDF: _char(char**, char, ErrorInfo*) (qurl.cpp:282)
> ==8011==    by 0x4EEFCC4: _pctEncoded(char**, char*, ErrorInfo*)
> (qurl.cpp:309)
> ==8011==    by 0x4EF2204: _regName(char**, QByteArray*, ErrorInfo*)
> (qurl.cpp:744)
> ==8011==    by 0x4EF446A: _host(char**, QByteArray*, ErrorInfo*)
> (qurl.cpp:758)
> ==8011==    by 0x4EF44FE: _authority(char**, QByteArray*, QByteArray*,
> int*, ErrorInfo*) (qurl.cpp:820)
> ==8011==    by 0x4EF4654: _hierPart(char**, QByteArray*, QByteArray*, int*,
> QByteArray*, ErrorInfo*) (qurl.cpp:1016)
> ==8011==    by 0x4EF570F: QUrlPrivate::parse(QUrlPrivate::ParseOptions)
> const (qurl.cpp:3362)
> ==8011==    by 0x4EF9263: QUrlPrivate::validate() const (qurl.cpp:3303)
> ==8011==    by 0x4EF95AB: QUrl::isValid() const (qurl.cpp:3656)
> ==8011==    by 0x62CD803: KUrl::equals(KUrl const&,
> QFlags<KUrl::EqualsOption> const&) const (kurl.cpp:517)
> ==8011==    by 0x62CDC37: KUrl::isParentOf(KUrl const&) const
> (kurl.cpp:1700) ==8011==    by 0x6668DEB:
> KDevelop::Project::fileForUrl(KUrl const&) const (project.cpp:352)
> ==8011==  Address 0xf2b1df7 is 31 bytes inside a block of size 128 free'd
> ==8011==    at 0x4C21F3B: free (vg_replace_malloc.c:323)
> ==8011==    by 0x4E738F0: qFree(void*) (qglobal.cpp:1965)
> ==8011==    by 0x4E7E32E: QByteArray::operator=(QByteArray const&)
> (qbytearray.cpp:811)
> ==8011==    by 0x4EF9246: QUrlPrivate::validate() const (qurl.cpp:3302)
> ==8011==    by 0x4EF95AB: QUrl::isValid() const (qurl.cpp:3656)
> ==8011==    by 0x62CD803: KUrl::equals(KUrl const&,
> QFlags<KUrl::EqualsOption> const&) const (kurl.cpp:517)
> ==8011==    by 0x62CDC37: KUrl::isParentOf(KUrl const&) const
> (kurl.cpp:1700) ==8011==    by 0x6668DEB:
> KDevelop::Project::fileForUrl(KUrl const&) const (project.cpp:352)
> ==8011==    by 0x1ECFFF08: CppLanguageSupport::findIncludePaths(KUrl
> const&) const (cpplanguagesupport.cpp:257)
> ==8011==    by 0x1ED070D0: CPPParseJob::includePaths() const
> (cppparsejob.cpp:121)
> ==8011==    by 0x1ED0D018: PreprocessJob::run() (preprocessjob.cpp:93)
> ==8011==    by 0x96D8498:
> ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*,
> ThreadWeaver::Job*) (Job.cpp:106)

These aren't really crashes, just valgrind warnings, right?

greetings, David




More information about the KDevelop-devel mailing list