[Digikam-devel] GoSC2010 memory leak...

Gilles Caulier caulier.gilles at gmail.com
Wed Jul 28 13:05:31 BST 2010


Hi all,

Running digiKam into valgrind give me a huge trace of memory
corruption... I recommend to all developpers at least to run digiKam
into valgrind and to test parts relevant of GoSC.

The command line to use is given there :

http://lxr.kde.org/source/extragear/graphics/digikam/HACKING#241

Some example from libkmap :

==27646== 1 bytes in 1 blocks are possibly lost in loss record 10 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x497DCC8:
KMapIface::MapBackend::MapBackend(QExplicitlySharedDataPointer<KMapIface::WMWSharedData>
const&, QObject*) (map-backend.cpp:42)
==27646==    by 0x498C56A:
KMapIface::BackendGoogleMaps::BackendGoogleMaps(QExplicitlySharedDataPointer<KMapIface::WMWSharedData>
const&, QObject*) (backend-googlemaps.cpp:99)
==27646==    by 0x496C36B: KMapIface::KMap::KMap(QWidget*) (kmap.cpp:204)
==27646==    by 0x8300148:
Digikam::MapWidgetView::MapWidgetView(Digikam::ImageAlbumModel*,
QWidget*) (mapwidgetview.cpp:89)
==27646==    by 0x828B781:
Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)
(albumwidgetstack.cpp:110)
==27646==    by 0x82BEE37: Digikam::DigikamView::DigikamView(QWidget*,
Digikam::DigikamModelCollection*) (digikamview.cpp:174)
==27646==    by 0x829DD62: Digikam::DigikamApp::setupView() (digikamapp.cpp:485)
==27646==    by 0x829C916: Digikam::DigikamApp::DigikamApp()
(digikamapp.cpp:231)
==27646==    by 0x8394A2D: main (main.cpp:172)
==27646==
==27646== 1 bytes in 1 blocks are possibly lost in loss record 11 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x497DCC8:
KMapIface::MapBackend::MapBackend(QExplicitlySharedDataPointer<KMapIface::WMWSharedData>
const&, QObject*) (map-backend.cpp:42)
==27646==    by 0x4987564:
KMapIface::BackendMarble::BackendMarble(QExplicitlySharedDataPointer<KMapIface::WMWSharedData>
const&, QObject*) (backend-marble.cpp:128)
==27646==    by 0x496C3B1: KMapIface::KMap::KMap(QWidget*) (kmap.cpp:205)
==27646==    by 0x8300148:
Digikam::MapWidgetView::MapWidgetView(Digikam::ImageAlbumModel*,
QWidget*) (mapwidgetview.cpp:89)
==27646==    by 0x828B781:
Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)
(albumwidgetstack.cpp:110)
==27646==    by 0x82BEE37: Digikam::DigikamView::DigikamView(QWidget*,
Digikam::DigikamModelCollection*) (digikamview.cpp:174)
==27646==    by 0x829DD62: Digikam::DigikamApp::setupView() (digikamapp.cpp:485)
==27646==    by 0x829C916: Digikam::DigikamApp::DigikamApp()
(digikamapp.cpp:231)
==27646==    by 0x8394A2D: main (main.cpp:172)

==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x497DCC8:
KMapIface::MapBackend::MapBackend(QExplicitlySharedDataPointer<KMapIface::WMWSharedData>
const&, QObject*) (map-backend.cpp:42)
==27646==    by 0x498C56A:
KMapIface::BackendGoogleMaps::BackendGoogleMaps(QExplicitlySharedDataPointer<KMapIface::WMWSharedData>
const&, QObject*) (backend-googlemaps.cpp:99)
==27646==    by 0x496C36B: KMapIface::KMap::KMap(QWidget*) (kmap.cpp:204)
==27646==    by 0x81C47BE:
Digikam::GPSSearchView::GPSSearchView(QWidget*, Digikam::SearchModel*,
Digikam::SearchModificationHelper*) (gpssearchview.cpp:139)
==27646==    by 0x82FC278:
Digikam::GPSSearchSideBarWidget::GPSSearchSideBarWidget(QWidget*,
Digikam::SearchModel*, Digikam::SearchModificationHelper*)
(leftsidebarwidgets.cpp:1018)
==27646==    by 0x82BF3B7: Digikam::DigikamView::DigikamView(QWidget*,
Digikam::DigikamModelCollection*) (digikamview.cpp:226)
==27646==    by 0x829DD62: Digikam::DigikamApp::setupView() (digikamapp.cpp:485)
==27646==    by 0x829C916: Digikam::DigikamApp::DigikamApp()
(digikamapp.cpp:231)
==27646==    by 0x8394A2D: main (main.cpp:172)
==27646==
==27646== 1 bytes in 1 blocks are possibly lost in loss record 29 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x497DCC8:
KMapIface::MapBackend::MapBackend(QExplicitlySharedDataPointer<KMapIface::WMWSharedData>
const&, QObject*) (map-backend.cpp:42)
==27646==    by 0x4987564:
KMapIface::BackendMarble::BackendMarble(QExplicitlySharedDataPointer<KMapIface::WMWSharedData>
const&, QObject*) (backend-marble.cpp:128)
==27646==    by 0x496C3B1: KMapIface::KMap::KMap(QWidget*) (kmap.cpp:205)
==27646==    by 0x81C47BE:
Digikam::GPSSearchView::GPSSearchView(QWidget*, Digikam::SearchModel*,
Digikam::SearchModificationHelper*) (gpssearchview.cpp:139)
==27646==    by 0x82FC278:
Digikam::GPSSearchSideBarWidget::GPSSearchSideBarWidget(QWidget*,
Digikam::SearchModel*, Digikam::SearchModificationHelper*)
(leftsidebarwidgets.cpp:1018)
==27646==    by 0x82BF3B7: Digikam::DigikamView::DigikamView(QWidget*,
Digikam::DigikamModelCollection*) (digikamview.cpp:226)
==27646==    by 0x829DD62: Digikam::DigikamApp::setupView() (digikamapp.cpp:485)
==27646==    by 0x829C916: Digikam::DigikamApp::DigikamApp()
(digikamapp.cpp:231)
==27646==    by 0x8394A2D: main (main.cpp:172)


==27646== 2 bytes in 2 blocks are possibly lost in loss record 192 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x585D7CD:
Marble::AbstractFloatItem::AbstractFloatItem(QPointF const&, QSizeF
const&) (in /usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x19CF5B21: ??? (in
/usr/lib/kde4/plugins/marble/CompassFloatItem.so)
==27646==    by 0x19CF655B: ??? (in
/usr/lib/kde4/plugins/marble/CompassFloatItem.so)
==27646==    by 0x5858D0C:
Marble::PluginManager::createRenderPlugins() const (in
/usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x5857B9B:
Marble::LayerManager::LayerManager(Marble::MarbleDataFacade*,
QObject*) (in /usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x5805DB1: Marble::MarbleModel::MarbleModel(QObject*)
(in /usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x580F272: Marble::MarbleMap::MarbleMap() (in
/usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x57FF38A:
Marble::MarbleWidget::MarbleWidget(QWidget*) (in
/usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x498BDD1:
KMapIface::BMWidget::BMWidget(KMapIface::BackendMarble*, QWidget*)
(backend-marble-subwidget.cpp:37)
==27646==    by 0x49875C1:
KMapIface::BackendMarble::BackendMarble(QExplicitlySharedDataPointer<KMapIface::WMWSharedData>
const&, QObject*) (backend-marble.cpp:136)
==27646==    by 0x496C3B1: KMapIface::KMap::KMap(QWidget*) (kmap.cpp:205)
==27646==
==27646== 2 bytes in 2 blocks are possibly lost in loss record 193 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x585D7CD:
Marble::AbstractFloatItem::AbstractFloatItem(QPointF const&, QSizeF
const&) (in /usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x19D1A3AB: ??? (in
/usr/lib/kde4/plugins/marble/MapScaleFloatItem.so)
==27646==    by 0x19D1B48F: ??? (in
/usr/lib/kde4/plugins/marble/MapScaleFloatItem.so)
==27646==    by 0x5858D0C:
Marble::PluginManager::createRenderPlugins() const (in
/usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x5857B9B:
Marble::LayerManager::LayerManager(Marble::MarbleDataFacade*,
QObject*) (in /usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x5805DB1: Marble::MarbleModel::MarbleModel(QObject*)
(in /usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x580F272: Marble::MarbleMap::MarbleMap() (in
/usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x57FF38A:
Marble::MarbleWidget::MarbleWidget(QWidget*) (in
/usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x498BDD1:
KMapIface::BMWidget::BMWidget(KMapIface::BackendMarble*, QWidget*)
(backend-marble-subwidget.cpp:37)
==27646==    by 0x49875C1:
KMapIface::BackendMarble::BackendMarble(QExplicitlySharedDataPointer<KMapIface::WMWSharedData>
const&, QObject*) (backend-marble.cpp:136)
==27646==    by 0x496C3B1: KMapIface::KMap::KMap(QWidget*) (kmap.cpp:205)
==27646==
==27646== 2 bytes in 2 blocks are possibly lost in loss record 194 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x585D7CD:
Marble::AbstractFloatItem::AbstractFloatItem(QPointF const&, QSizeF
const&) (in /usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x19D214EB: ??? (in
/usr/lib/kde4/plugins/marble/NavigationFloatItem.so)
==27646==    by 0x19D2288D: ??? (in
/usr/lib/kde4/plugins/marble/NavigationFloatItem.so)
==27646==    by 0x5858D0C:
Marble::PluginManager::createRenderPlugins() const (in
/usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x5857B9B:
Marble::LayerManager::LayerManager(Marble::MarbleDataFacade*,
QObject*) (in /usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x5805DB1: Marble::MarbleModel::MarbleModel(QObject*)
(in /usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x580F272: Marble::MarbleMap::MarbleMap() (in
/usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x57FF38A:
Marble::MarbleWidget::MarbleWidget(QWidget*) (in
/usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x498BDD1:
KMapIface::BMWidget::BMWidget(KMapIface::BackendMarble*, QWidget*)
(backend-marble-subwidget.cpp:37)
==27646==    by 0x49875C1:
KMapIface::BackendMarble::BackendMarble(QExplicitlySharedDataPointer<KMapIface::WMWSharedData>
const&, QObject*) (backend-marble.cpp:136)
==27646==    by 0x496C3B1: KMapIface::KMap::KMap(QWidget*) (kmap.cpp:205)
==27646==
==27646== 2 bytes in 2 blocks are possibly lost in loss record 195 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x585D7CD:
Marble::AbstractFloatItem::AbstractFloatItem(QPointF const&, QSizeF
const&) (in /usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x19D43E4B: ??? (in /usr/lib/kde4/plugins/marble/OverviewMap.so)
==27646==    by 0x19D456FD: ??? (in /usr/lib/kde4/plugins/marble/OverviewMap.so)
==27646==    by 0x5858D0C:
Marble::PluginManager::createRenderPlugins() const (in
/usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x5857B9B:
Marble::LayerManager::LayerManager(Marble::MarbleDataFacade*,
QObject*) (in /usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x5805DB1: Marble::MarbleModel::MarbleModel(QObject*)
(in /usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x580F272: Marble::MarbleMap::MarbleMap() (in
/usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x57FF38A:
Marble::MarbleWidget::MarbleWidget(QWidget*) (in
/usr/lib/libmarblewidget.so.4.4.0)
==27646==    by 0x498BDD1:
KMapIface::BMWidget::BMWidget(KMapIface::BackendMarble*, QWidget*)
(backend-marble-subwidget.cpp:37)
==27646==    by 0x49875C1:
KMapIface::BackendMarble::BackendMarble(QExplicitlySharedDataPointer<KMapIface::WMWSharedData>
const&, QObject*) (backend-marble.cpp:136)
==27646==    by 0x496C3B1: KMapIface::KMap::KMap(QWidget*) (kmap.cpp:205)

...

And there libkface :

==27646== 20 bytes in 1 blocks are possibly lost in loss record 15,223 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x4948E7D:
KFaceIface::Database::Database(QFlags<KFaceIface::Database::InitFlag>,
QString const&) (database.cpp:77)
==27646==    by 0x82E9B78:
Digikam::ImagePreviewViewV2Priv::ImagePreviewViewV2Priv()
(imagepreviewviewv2.cpp:135)
==27646==    by 0x82E6DC6:
Digikam::ImagePreviewViewV2::ImagePreviewViewV2(Digikam::AlbumWidgetStack*)
(imagepreviewviewv2.cpp:162)
==27646==    by 0x828B53E:
Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)
(albumwidgetstack.cpp:101)
==27646==    by 0x82BEE37: Digikam::DigikamView::DigikamView(QWidget*,
Digikam::DigikamModelCollection*) (digikamview.cpp:174)
==27646==    by 0x829DD62: Digikam::DigikamApp::setupView() (digikamapp.cpp:485)
==27646==    by 0x829C916: Digikam::DigikamApp::DigikamApp()
(digikamapp.cpp:231)
==27646==    by 0x8394A2D: main (main.cpp:172)

==27646== 32 bytes in 1 blocks are possibly lost in loss record 26,504 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x49491A8:
KFaceIface::Database::Database(QFlags<KFaceIface::Database::InitFlag>,
QString const&) (database.cpp:94)
==27646==    by 0x82E9B78:
Digikam::ImagePreviewViewV2Priv::ImagePreviewViewV2Priv()
(imagepreviewviewv2.cpp:135)
==27646==    by 0x82E6DC6:
Digikam::ImagePreviewViewV2::ImagePreviewViewV2(Digikam::AlbumWidgetStack*)
(imagepreviewviewv2.cpp:162)
==27646==    by 0x828B53E:
Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)
(albumwidgetstack.cpp:101)
==27646==    by 0x82BEE37: Digikam::DigikamView::DigikamView(QWidget*,
Digikam::DigikamModelCollection*) (digikamview.cpp:174)
==27646==    by 0x829DD62: Digikam::DigikamApp::setupView() (digikamapp.cpp:485)
==27646==    by 0x829C916: Digikam::DigikamApp::DigikamApp()
(digikamapp.cpp:231)
==27646==    by 0x8394A2D: main (main.cpp:172)
==27646==
==27646== 32 bytes in 1 blocks are possibly lost in loss record 26,505 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x7B0DBF0: libface::FaceDetect::FaceDetect(std::string
const&) (in /usr/lib/libface.so.0.1)
==27646==    by 0x7B19E28: libface::LibFace::LibFace(libface::Mode,
std::string const&, std::string const&) (in /usr/lib/libface.so.0.1)
==27646==    by 0x49491C6:
KFaceIface::Database::Database(QFlags<KFaceIface::Database::InitFlag>,
QString const&) (database.cpp:94)
==27646==    by 0x82E9B78:
Digikam::ImagePreviewViewV2Priv::ImagePreviewViewV2Priv()
(imagepreviewviewv2.cpp:135)
==27646==    by 0x82E6DC6:
Digikam::ImagePreviewViewV2::ImagePreviewViewV2(Digikam::AlbumWidgetStack*)
(imagepreviewviewv2.cpp:162)
==27646==    by 0x828B53E:
Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)
(albumwidgetstack.cpp:101)
==27646==    by 0x82BEE37: Digikam::DigikamView::DigikamView(QWidget*,
Digikam::DigikamModelCollection*) (digikamview.cpp:174)
==27646==    by 0x829DD62: Digikam::DigikamApp::setupView() (digikamapp.cpp:485)
==27646==    by 0x829C916: Digikam::DigikamApp::DigikamApp()
(digikamapp.cpp:231)
==27646==    by 0x8394A2D: main (main.cpp:172)

==27646== 40 bytes in 1 blocks are possibly lost in loss record 36,048 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x73661C5: std::string::_Rep::_S_create(unsigned int,
unsigned int, std::allocator<char> const&) (in
/usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x7367000: ??? (in /usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x73671E5: std::basic_string<char,
std::char_traits<char>, std::allocator<char> >::basic_string(char
const*, std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x7B0DD47: libface::FaceDetect::FaceDetect(std::string
const&) (in /usr/lib/libface.so.0.1)
==27646==    by 0x7B19D89: libface::LibFace::LibFace(libface::Mode,
std::string const&, std::string const&) (in /usr/lib/libface.so.0.1)
==27646==    by 0x4949038:
KFaceIface::Database::Database(QFlags<KFaceIface::Database::InitFlag>,
QString const&) (database.cpp:84)
==27646==    by 0x818010B:
Digikam::BatchFaceDetector::BatchFaceDetectorPriv::BatchFaceDetectorPriv()
(batchfacedetector.cpp:78)
==27646==    by 0x817EF6B:
Digikam::BatchFaceDetector::BatchFaceDetector(QWidget*, bool)
(batchfacedetector.cpp:99)
==27646==    by 0x82B3FB7: Digikam::DigikamApp::runFaceScanner(bool)
(digikamapp.cpp:2635)
==27646==    by 0x82B37F6:
Digikam::DigikamApp::slotDetectFacesFirstTime() (digikamapp.cpp:2586)
==27646==    by 0x829A965:
Digikam::DigikamApp::qt_metacall(QMetaObject::Call, int, void**)
(digikamapp.moc:261)

==27646== 42 bytes in 1 blocks are possibly lost in loss record 36,390 of 65,187
==27646==    at 0x4023D7C: malloc (vg_replace_malloc.c:195)
==27646==    by 0x6FFA63A: qMalloc(unsigned int) (in
/usr/lib/libQtCore.so.4.6.2)
==27646==    by 0x494A790:
KFaceIface::Database::DatabasePriv::DatabasePriv() (database.cpp:60)
==27646==    by 0x4948E89:
KFaceIface::Database::Database(QFlags<KFaceIface::Database::InitFlag>,
QString const&) (database.cpp:77)
==27646==    by 0x82E9B78:
Digikam::ImagePreviewViewV2Priv::ImagePreviewViewV2Priv()
(imagepreviewviewv2.cpp:135)
==27646==    by 0x82E6DC6:
Digikam::ImagePreviewViewV2::ImagePreviewViewV2(Digikam::AlbumWidgetStack*)
(imagepreviewviewv2.cpp:162)
==27646==    by 0x828B53E:
Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)
(albumwidgetstack.cpp:101)
==27646==    by 0x82BEE37: Digikam::DigikamView::DigikamView(QWidget*,
Digikam::DigikamModelCollection*) (digikamview.cpp:174)
==27646==    by 0x829DD62: Digikam::DigikamApp::setupView() (digikamapp.cpp:485)
==27646==    by 0x829C916: Digikam::DigikamApp::DigikamApp()
(digikamapp.cpp:231)
==27646==    by 0x8394A2D: main (main.cpp:172)

==27646== 47 bytes in 1 blocks are possibly lost in loss record 37,845 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x73661C5: std::string::_Rep::_S_create(unsigned int,
unsigned int, std::allocator<char> const&) (in
/usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x7366E37:
std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned int)
(in /usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x7367C0F: std::string::reserve(unsigned int) (in
/usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x7367E8A: std::string::append(char const*, unsigned
int) (in /usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x7367F54: std::string::append(char const*) (in
/usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x494A990: std::basic_string<char,
std::char_traits<char>, std::allocator<char> > std::operator+<char,
std::char_traits<char>, std::allocator<char> >(std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, char const*)
(basic_string.h:2205)
==27646==    by 0x4949193:
KFaceIface::Database::Database(QFlags<KFaceIface::Database::InitFlag>,
QString const&) (database.cpp:94)
==27646==    by 0x82E9B78:
Digikam::ImagePreviewViewV2Priv::ImagePreviewViewV2Priv()
(imagepreviewviewv2.cpp:135)
==27646==    by 0x82E6DC6:
Digikam::ImagePreviewViewV2::ImagePreviewViewV2(Digikam::AlbumWidgetStack*)
(imagepreviewviewv2.cpp:162)
==27646==    by 0x828B53E:
Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)
(albumwidgetstack.cpp:101)
==27646==    by 0x82BEE37: Digikam::DigikamView::DigikamView(QWidget*,
Digikam::DigikamModelCollection*) (digikamview.cpp:174)
==27646==
==27646== 48 bytes in 1 blocks are possibly lost in loss record 42,363 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x73661C5: std::string::_Rep::_S_create(unsigned int,
unsigned int, std::allocator<char> const&) (in
/usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x7367000: ??? (in /usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x73671E5: std::basic_string<char,
std::char_traits<char>, std::allocator<char> >::basic_string(char
const*, std::allocator<char> const&) (in /usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x7B0DCBC: libface::FaceDetect::FaceDetect(std::string
const&) (in /usr/lib/libface.so.0.1)
==27646==    by 0x7B19D89: libface::LibFace::LibFace(libface::Mode,
std::string const&, std::string const&) (in /usr/lib/libface.so.0.1)
==27646==    by 0x4949038:
KFaceIface::Database::Database(QFlags<KFaceIface::Database::InitFlag>,
QString const&) (database.cpp:84)
==27646==    by 0x818010B:
Digikam::BatchFaceDetector::BatchFaceDetectorPriv::BatchFaceDetectorPriv()
(batchfacedetector.cpp:78)
==27646==    by 0x817EF6B:
Digikam::BatchFaceDetector::BatchFaceDetector(QWidget*, bool)
(batchfacedetector.cpp:99)
==27646==    by 0x82B3FB7: Digikam::DigikamApp::runFaceScanner(bool)
(digikamapp.cpp:2635)
==27646==    by 0x82B37F6:
Digikam::DigikamApp::slotDetectFacesFirstTime() (digikamapp.cpp:2586)
==27646==    by 0x829A965:
Digikam::DigikamApp::qt_metacall(QMetaObject::Call, int, void**)
(digikamapp.moc:261)

==27646== 89 bytes in 1 blocks are possibly lost in loss record 50,103 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x73661C5: std::string::_Rep::_S_create(unsigned int,
unsigned int, std::allocator<char> const&) (in
/usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x7366E37:
std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned int)
(in /usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x7367C0F: std::string::reserve(unsigned int) (in
/usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x73680EF: std::string::append(std::string const&) (in
/usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x7368187: std::basic_string<char,
std::char_traits<char>, std::allocator<char> > std::operator+<char,
std::char_traits<char>, std::allocator<char> >(std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&) (in /usr/lib/libstdc++.so.6.0.13)
==27646==    by 0x7B12BE5: libface::Eigenfaces::Eigenfaces(std::string
const&) (in /usr/lib/libface.so.0.1)
==27646==    by 0x7B19E51: libface::LibFace::LibFace(libface::Mode,
std::string const&, std::string const&) (in /usr/lib/libface.so.0.1)
==27646==    by 0x49491C6:
KFaceIface::Database::Database(QFlags<KFaceIface::Database::InitFlag>,
QString const&) (database.cpp:94)
==27646==    by 0x82E9B78:
Digikam::ImagePreviewViewV2Priv::ImagePreviewViewV2Priv()
(imagepreviewviewv2.cpp:135)
==27646==    by 0x82E6DC6:
Digikam::ImagePreviewViewV2::ImagePreviewViewV2(Digikam::AlbumWidgetStack*)
(imagepreviewviewv2.cpp:162)
==27646==    by 0x828B53E:
Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)
(albumwidgetstack.cpp:101)

==27646== 1,672 bytes in 38 blocks are possibly lost in loss record
63,650 of 65,187
==27646==    at 0x4023D7C: malloc (vg_replace_malloc.c:195)
==27646==    by 0x7B4A89E: cv::fastMalloc(unsigned int) (in
/usr/lib/libcxcore.so.2.1.0)
==27646==    by 0x7B1A29B: libface::LibFace::detectFaces(_IplImage*,
int) (in /usr/lib/libface.so.0.1)
==27646==    by 0x49493ED:
KFaceIface::Database::detectFaces(KFaceIface::Image const&)
(database.cpp:117)
==27646==    by 0x817FBD5:
Digikam::BatchFaceDetector::slotGotImagePreview(Digikam::LoadingDescription
const&, Digikam::DImg const&) (batchfacedetector.cpp:193)
==27646==    by 0x817EB74:
Digikam::BatchFaceDetector::qt_metacall(QMetaObject::Call, int,
void**) (batchfacedetector.moc:88)
==27646==    by 0x710EDEC: QMetaObject::metacall(QObject*,
QMetaObject::Call, int, void**) (in /usr/lib/libQtCore.so.4.6.2)
==27646==
==27646== 1,680 bytes in 4 blocks are possibly lost in loss record
63,654 of 65,187
==27646==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==27646==    by 0x66F91F9: QMenu::QMenu(QWidget*) (in
/usr/lib/libQtGui.so.4.6.2)
==27646==    by 0x829C943: Digikam::DigikamApp::DigikamApp()
(digikamapp.cpp:233)
==27646==    by 0x8394A2D: main (main.cpp:172)

==27646== 46,676 bytes in 1 blocks are possibly lost in loss record
65,075 of 65,187
==27646==    at 0x4023D7C: malloc (vg_replace_malloc.c:195)
==27646==    by 0x7B4A89E: cv::fastMalloc(unsigned int) (in
/usr/lib/libcxcore.so.2.1.0)
==27646==    by 0x7B0EBFD:
libface::FaceDetect::detectFaces(_IplImage*) (in
/usr/lib/libface.so.0.1)
==27646==    by 0x7B1A29B: libface::LibFace::detectFaces(_IplImage*,
int) (in /usr/lib/libface.so.0.1)
==27646==    by 0x49493ED:
KFaceIface::Database::detectFaces(KFaceIface::Image const&)
(database.cpp:117)
==27646==    by 0x817FBD5:
Digikam::BatchFaceDetector::slotGotImagePreview(Digikam::LoadingDescription
const&, Digikam::DImg const&) (batchfacedetector.cpp:193)
==27646==    by 0x817EB74:
Digikam::BatchFaceDetector::qt_metacall(QMetaObject::Call, int,
void**) (batchfacedetector.moc:88)
==27646==    by 0x710EDEC: QMetaObject::metacall(QObject*,
QMetaObject::Call, int, void**) (in /usr/lib/libQtCore.so.4.6.2)
==27646==

and finally :

==27646== LEAK SUMMARY:
==27646==    definitely lost: 14,775 bytes in 205 blocks
==27646==    indirectly lost: 132,748 bytes in 3,343 blocks
==27646==      possibly lost: 106,959,514 bytes in 1,167,664 blocks
==27646==    still reachable: 66,574,196 bytes in 189,617 blocks
==27646==         suppressed: 0 bytes in 0 blocks
==27646== Reachable blocks (those to which a pointer was found) are not shown.
==27646== To see them, rerun with: --leak-check=full --show-reachable=yes
==27646==
==27646== For counts of detected and suppressed errors, rerun with: -v
==27646== Use --track-origins=yes to see where uninitialised values come from
==27646== ERROR SUMMARY: 94561 errors from 38688 contexts (suppressed:
608 from 13)

Gilles



More information about the Digikam-devel mailing list