Hi all,
Just running valgrind... From digiKam core ==3462== 338 bytes in 9 blocks are definitely lost in loss record 513 of 722 ==3462== at 0x4024D0E: malloc (vg_replace_malloc.c:207) ==3462== by 0x69009FA: qMalloc(unsigned int) (in /usr/lib/libQtCore.so.4.5.0) ==3462== by 0x694E490: QString::fromLatin1_helper(char const*, int) (in /usr/lib/libQtCore.so.4.5.0) ==3462== by 0x6959D4B: QString::fromAscii_helper(char const*, int) (in /usr/lib/libQtCore.so.4.5.0) ==3462== by 0x5021AAB: Digikam::DatabaseUrl::dateUrl(Digikam::DatabaseParameters const&) (databaseurl.cpp:118) ==3462== by 0x828F3CD: Digikam::AlbumManager::scanDAlbums() (albummanager.cpp:1299) ==3462== by 0x829AF41: Digikam::AlbumManager::refresh() (albummanager.cpp:827) ==3462== by 0x829BE78: Digikam::AlbumManager::startScan() (albummanager.cpp:738) ==3462== by 0x82EC057: Digikam::DigikamApp::DigikamApp() (digikamapp.cpp:227) ==3462== by 0x838612D: main (main.cpp:160) ==3462== 324 (304 direct, 20 indirect) bytes in 1 blocks are definitely lost in loss record 654 of 722 ==3462== at 0x402471E: operator new(unsigned int) (vg_replace_malloc.c:224) ==3462== by 0x61B9D1C: QRubberBand::QRubberBand(QRubberBand::Shape, QWidget*) (in /usr/lib/libQtGui.so.4.5.0) ==3462== by 0x5258DBB: (within /usr/lib/libmarblewidget.so.4.2.0) ==3462== by 0x522FB47: (within /usr/lib/libmarblewidget.so.4.2.0) ==3462== by 0x5231687: Marble::MarbleWidget::MarbleWidget(QWidget*) (in /usr/lib/libmarblewidget.so.4.2.0) ==3462== by 0x81FAB03: Digikam::GPSSearchWidget::GPSSearchWidget(QWidget*) (gpssearchwidget.cpp:46) ==3462== by 0x81F8A9A: Digikam::GPSSearchView::GPSSearchView(QWidget*) (gpssearchview.cpp:100) ==3462== by 0x82F6F9C: Digikam::DigikamView::DigikamView(QWidget*) (digikamview.cpp:234) ==3462== by 0x82EA241: Digikam::DigikamApp::setupView() (digikamapp.cpp:442) ==3462== by 0x82EBE8B: Digikam::DigikamApp::DigikamApp() (digikamapp.cpp:200) ==3462== by 0x838612D: main (main.cpp:160) From 2 kipi plugins : ==3462== 4 bytes in 1 blocks are definitely lost in loss record 10 of 722 ==3462== at 0x402471E: operator new(unsigned int) (vg_replace_malloc.c:224) ==3462== by 0x17349431: Plugin_AdvancedSlideshow::setup(QWidget*) (plugin_advancedslideshow.cpp:101) ==3462== by 0x82CF5F3: Digikam::DigikamApp::slotKipiPluginPlug() (digikamapp.cpp:2259) ==3462== by 0x82ED8E8: Digikam::DigikamApp::qt_metacall(QMetaObject::Call, int, void**) (digikamapp.moc:204) ==3462== by 0x6A18E44: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQtCore.so.4.5.0) ==3462== by 0x6A1A6E4: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.5.0) ==3462== by 0x47B2821: KIPI::PluginLoader::loadPlugins() (in /usr/lib/libkipi.so.6.1.0) ==3462== by 0x82D09B6: Digikam::DigikamApp::loadPlugins() (digikamapp.cpp:2202) ==3462== by 0x82EC062: Digikam::DigikamApp::DigikamApp() (digikamapp.cpp:230) ==3462== by 0x838612D: main (main.cpp:160) ==3462== 156 (28 direct, 128 indirect) bytes in 1 blocks are definitely lost in loss record 596 of 722 ==3462== at 0x402471E: operator new(unsigned int) (vg_replace_malloc.c:224) ==3462== by 0x173F5E6B: Plugin_GalleryExport::setup(QWidget*) (plugin_galleryexport.cpp:65) ==3462== by 0x82CF5F3: Digikam::DigikamApp::slotKipiPluginPlug() (digikamapp.cpp:2259) ==3462== by 0x82ED8E8: Digikam::DigikamApp::qt_metacall(QMetaObject::Call, int, void**) (digikamapp.moc:204) ==3462== by 0x6A18E44: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQtCore.so.4.5.0) ==3462== by 0x6A1A6E4: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.5.0) ==3462== by 0x47B2821: KIPI::PluginLoader::loadPlugins() (in /usr/lib/libkipi.so.6.1.0) ==3462== by 0x82D09B6: Digikam::DigikamApp::loadPlugins() (digikamapp.cpp:2202) ==3462== by 0x82EC062: Digikam::DigikamApp::DigikamApp() (digikamapp.cpp:230) ==3462== by 0x838612D: main (main.cpp:160) All the rest (and there is a lots) come from Marble ! Final results, only to use album gui and setup dialog is : ==3462== LEAK SUMMARY: ==3462== definitely lost: 3,838 bytes in 75 blocks. ==3462== indirectly lost: 157,684 bytes in 547 blocks. ==3462== possibly lost: 517,540 bytes in 1,544 blocks. ==3462== still reachable: 5,309,186 bytes in 36,742 blocks. ==3462== suppressed: 0 bytes in 0 blocks. ==3462== Reachable blocks (those to which a pointer was found) are not shown. ==3462== To see them, rerun with: --leak-check=full --show-reachable=yes Gilles _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Valgrind memory leak is very random for me sometimes.
When I first start it, 1MB is lost, after restart and doing exactly the same things (and visiting the same albums), I only lost 300KB of RAM. If only valgrind would be faster, then I would do those checks more frequently. But it takes 2 minutes to only start digiKam (even with no instructions at startup). Also finding memory leaks is, most of the time, just luck. For profiling I use another tool now: oprofile. MUCH faster and it will profile the whole system. Some features from valgrind are missing, but I can live with that. Profiling with oprofile gives me no speed loss here, which is great. The scanTAlbums, scanDAlbums() etc part in your report annoys me since a few months now. I really don't see what is wrong here. But it constantly tells me that. And another one that bugs me is some painter issue in the splashscreen. It just prints text at some point, but it always loses memory in this instruction, although it is not different from all the other lines where we print text onto the splash. The rest is marble, and there are a lot of messages about it. Either we use Marble in a wrong way, or they really have that much memory leaks. Andi On Friday 15 May 2009 08:13:07 Gilles Caulier wrote: > Hi all, > > Just running valgrind... > > >From digiKam core > > ==3462== 338 bytes in 9 blocks are definitely lost in loss record 513 > of 722 > ==3462== at 0x4024D0E: malloc (vg_replace_malloc.c:207) > ==3462== by 0x69009FA: qMalloc(unsigned int) (in > /usr/lib/libQtCore.so.4.5.0) > ==3462== by 0x694E490: QString::fromLatin1_helper(char const*, int) > (in /usr/lib/libQtCore.so.4.5.0) > ==3462== by 0x6959D4B: QString::fromAscii_helper(char const*, int) > (in /usr/lib/libQtCore.so.4.5.0) > ==3462== by 0x5021AAB: > Digikam::DatabaseUrl::dateUrl(Digikam::DatabaseParameters const&) > (databaseurl.cpp:118) > ==3462== by 0x828F3CD: Digikam::AlbumManager::scanDAlbums() > (albummanager.cpp:1299) > ==3462== by 0x829AF41: Digikam::AlbumManager::refresh() > (albummanager.cpp:827) > ==3462== by 0x829BE78: Digikam::AlbumManager::startScan() > (albummanager.cpp:738) > ==3462== by 0x82EC057: Digikam::DigikamApp::DigikamApp() > (digikamapp.cpp:227) > ==3462== by 0x838612D: main (main.cpp:160) > > ==3462== 324 (304 direct, 20 indirect) bytes in 1 blocks are > definitely lost in loss record 654 of 722 > ==3462== at 0x402471E: operator new(unsigned int) > (vg_replace_malloc.c:224) > ==3462== by 0x61B9D1C: QRubberBand::QRubberBand(QRubberBand::Shape, > QWidget*) (in /usr/lib/libQtGui.so.4.5.0) > ==3462== by 0x5258DBB: (within /usr/lib/libmarblewidget.so.4.2.0) > ==3462== by 0x522FB47: (within /usr/lib/libmarblewidget.so.4.2.0) > ==3462== by 0x5231687: Marble::MarbleWidget::MarbleWidget(QWidget*) > (in /usr/lib/libmarblewidget.so.4.2.0) > ==3462== by 0x81FAB03: > Digikam::GPSSearchWidget::GPSSearchWidget(QWidget*) > (gpssearchwidget.cpp:46) > ==3462== by 0x81F8A9A: > Digikam::GPSSearchView::GPSSearchView(QWidget*) > (gpssearchview.cpp:100) > ==3462== by 0x82F6F9C: Digikam::DigikamView::DigikamView(QWidget*) > (digikamview.cpp:234) > ==3462== by 0x82EA241: Digikam::DigikamApp::setupView() > (digikamapp.cpp:442) > ==3462== by 0x82EBE8B: Digikam::DigikamApp::DigikamApp() > (digikamapp.cpp:200) > ==3462== by 0x838612D: main (main.cpp:160) > > >From 2 kipi plugins : > > ==3462== 4 bytes in 1 blocks are definitely lost in loss record 10 of > 722 > ==3462== at 0x402471E: operator new(unsigned int) > (vg_replace_malloc.c:224) > ==3462== by 0x17349431: Plugin_AdvancedSlideshow::setup(QWidget*) > (plugin_advancedslideshow.cpp:101) > ==3462== by 0x82CF5F3: Digikam::DigikamApp::slotKipiPluginPlug() > (digikamapp.cpp:2259) > ==3462== by 0x82ED8E8: > Digikam::DigikamApp::qt_metacall(QMetaObject::Call, int, void**) > (digikamapp.moc:204) > ==3462== by 0x6A18E44: QMetaObject::activate(QObject*, int, int, > void**) (in /usr/lib/libQtCore.so.4.5.0) > ==3462== by 0x6A1A6E4: QMetaObject::activate(QObject*, QMetaObject > const*, int, void**) (in /usr/lib/libQtCore.so.4.5.0) > ==3462== by 0x47B2821: KIPI::PluginLoader::loadPlugins() (in > /usr/lib/libkipi.so.6.1.0) > ==3462== by 0x82D09B6: Digikam::DigikamApp::loadPlugins() > (digikamapp.cpp:2202) > ==3462== by 0x82EC062: Digikam::DigikamApp::DigikamApp() > (digikamapp.cpp:230) > ==3462== by 0x838612D: main (main.cpp:160) > > ==3462== 156 (28 direct, 128 indirect) bytes in 1 blocks are > definitely lost in loss record 596 of 722 > ==3462== at 0x402471E: operator new(unsigned int) > (vg_replace_malloc.c:224) > ==3462== by 0x173F5E6B: Plugin_GalleryExport::setup(QWidget*) > (plugin_galleryexport.cpp:65) > ==3462== by 0x82CF5F3: Digikam::DigikamApp::slotKipiPluginPlug() > (digikamapp.cpp:2259) > ==3462== by 0x82ED8E8: > Digikam::DigikamApp::qt_metacall(QMetaObject::Call, int, void**) > (digikamapp.moc:204) > ==3462== by 0x6A18E44: QMetaObject::activate(QObject*, int, int, > void**) (in /usr/lib/libQtCore.so.4.5.0) > ==3462== by 0x6A1A6E4: QMetaObject::activate(QObject*, QMetaObject > const*, int, void**) (in /usr/lib/libQtCore.so.4.5.0) > ==3462== by 0x47B2821: KIPI::PluginLoader::loadPlugins() (in > /usr/lib/libkipi.so.6.1.0) > ==3462== by 0x82D09B6: Digikam::DigikamApp::loadPlugins() > (digikamapp.cpp:2202) > ==3462== by 0x82EC062: Digikam::DigikamApp::DigikamApp() > (digikamapp.cpp:230) > ==3462== by 0x838612D: main (main.cpp:160) > > > All the rest (and there is a lots) come from Marble ! > > Final results, only to use album gui and setup dialog is : > > ==3462== LEAK SUMMARY: > ==3462== definitely lost: 3,838 bytes in 75 blocks. > ==3462== indirectly lost: 157,684 bytes in 547 blocks. > ==3462== possibly lost: 517,540 bytes in 1,544 blocks. > ==3462== still reachable: 5,309,186 bytes in 36,742 blocks. > ==3462== suppressed: 0 bytes in 0 blocks. > ==3462== Reachable blocks (those to which a pointer was found) are not > shown. ==3462== To see them, rerun with: --leak-check=full > --show-reachable=yes > > Gilles > _______________________________________________ > Digikam-devel mailing list > [hidden email] > https://mail.kde.org/mailman/listinfo/digikam-devel _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
On Friday 15 May 2009 09:43:34 Andi Clemens wrote:
> > The scanTAlbums, scanDAlbums() etc part in your report annoys me since a > few months now. I really don't see what is wrong here. But it constantly > tells me that. DatabaseUrl is a KUrl, databaseurl.cpp line 118 is url.setProtocol("digikamdates"); setProtocol is not reimplemented, so it could be inside KUrl or even inside QString. Another place to look is what happens with the DatabaseUrl object after it's returned to the caller. But if the whole object was lost, we'd see a loss record for it as well. _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Gilles Caulier-4
2009/5/15 Gilles Caulier <[hidden email]>:
> Hi all, > > Just running valgrind... > > From digiKam core > > ==3462== 338 bytes in 9 blocks are definitely lost in loss record 513 > of 722 > ==3462== at 0x4024D0E: malloc (vg_replace_malloc.c:207) > ==3462== by 0x69009FA: qMalloc(unsigned int) (in > /usr/lib/libQtCore.so.4.5.0) > ==3462== by 0x694E490: QString::fromLatin1_helper(char const*, int) > (in /usr/lib/libQtCore.so.4.5.0) > ==3462== by 0x6959D4B: QString::fromAscii_helper(char const*, int) > (in /usr/lib/libQtCore.so.4.5.0) > ==3462== by 0x5021AAB: > Digikam::DatabaseUrl::dateUrl(Digikam::DatabaseParameters const&) > (databaseurl.cpp:118) > ==3462== by 0x828F3CD: Digikam::AlbumManager::scanDAlbums() > (albummanager.cpp:1299) > ==3462== by 0x829AF41: Digikam::AlbumManager::refresh() > (albummanager.cpp:827) > ==3462== by 0x829BE78: Digikam::AlbumManager::startScan() > (albummanager.cpp:738) > ==3462== by 0x82EC057: Digikam::DigikamApp::DigikamApp() > (digikamapp.cpp:227) > ==3462== by 0x838612D: main (main.cpp:160) > > ==3462== 324 (304 direct, 20 indirect) bytes in 1 blocks are > definitely lost in loss record 654 of 722 > ==3462== at 0x402471E: operator new(unsigned int) > (vg_replace_malloc.c:224) > ==3462== by 0x61B9D1C: QRubberBand::QRubberBand(QRubberBand::Shape, > QWidget*) (in /usr/lib/libQtGui.so.4.5.0) > ==3462== by 0x5258DBB: (within /usr/lib/libmarblewidget.so.4.2.0) > ==3462== by 0x522FB47: (within /usr/lib/libmarblewidget.so.4.2.0) > ==3462== by 0x5231687: Marble::MarbleWidget::MarbleWidget(QWidget*) > (in /usr/lib/libmarblewidget.so.4.2.0) > ==3462== by 0x81FAB03: > Digikam::GPSSearchWidget::GPSSearchWidget(QWidget*) > (gpssearchwidget.cpp:46) > ==3462== by 0x81F8A9A: > Digikam::GPSSearchView::GPSSearchView(QWidget*) > (gpssearchview.cpp:100) > ==3462== by 0x82F6F9C: Digikam::DigikamView::DigikamView(QWidget*) > (digikamview.cpp:234) > ==3462== by 0x82EA241: Digikam::DigikamApp::setupView() > (digikamapp.cpp:442) > ==3462== by 0x82EBE8B: Digikam::DigikamApp::DigikamApp() > (digikamapp.cpp:200) > ==3462== by 0x838612D: main (main.cpp:160) > > > From 2 kipi plugins : > > > ==3462== 4 bytes in 1 blocks are definitely lost in loss record 10 of > 722 > ==3462== at 0x402471E: operator new(unsigned int) > (vg_replace_malloc.c:224) > ==3462== by 0x17349431: Plugin_AdvancedSlideshow::setup(QWidget*) > (plugin_advancedslideshow.cpp:101) > ==3462== by 0x82CF5F3: Digikam::DigikamApp::slotKipiPluginPlug() > (digikamapp.cpp:2259) > ==3462== by 0x82ED8E8: > Digikam::DigikamApp::qt_metacall(QMetaObject::Call, int, void**) > (digikamapp.moc:204) > ==3462== by 0x6A18E44: QMetaObject::activate(QObject*, int, int, > void**) (in /usr/lib/libQtCore.so.4.5.0) > ==3462== by 0x6A1A6E4: QMetaObject::activate(QObject*, QMetaObject > const*, int, void**) (in /usr/lib/libQtCore.so.4.5.0) > ==3462== by 0x47B2821: KIPI::PluginLoader::loadPlugins() (in > /usr/lib/libkipi.so.6.1.0) > ==3462== by 0x82D09B6: Digikam::DigikamApp::loadPlugins() > (digikamapp.cpp:2202) > ==3462== by 0x82EC062: Digikam::DigikamApp::DigikamApp() > (digikamapp.cpp:230) > ==3462== by 0x838612D: main (main.cpp:160) > This one is fied in svn... Gilles _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |